{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "from transformer_lens import HookedTransformer\n",
    "import numpy as np"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Load Dictionaries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from torch import nn\n",
    "class AutoEncoder(nn.Module):\n",
    "    def __init__(self, activation_size, n_dict_components, t_type=torch.float16):\n",
    "        super(AutoEncoder, self).__init__()\n",
    "        # create decoder using float16 to save memory\n",
    "        self.decoder = nn.Linear(n_dict_components, activation_size, bias=False)\n",
    "        # Initialize the decoder weights orthogonally\n",
    "        nn.init.orthogonal_(self.decoder.weight)\n",
    "        self.decoder = self.decoder.to(t_type)\n",
    "\n",
    "        self.encoder = nn.Sequential(\n",
    "            nn.Linear(activation_size, n_dict_components).to(t_type),\n",
    "            nn.ReLU()\n",
    "        )\n",
    "        \n",
    "    def forward(self, x):\n",
    "        c = self.encoder(x)\n",
    "        # Apply unit norm constraint to the decoder weights\n",
    "        self.decoder.weight.data = nn.functional.normalize(self.decoder.weight.data, dim=0)\n",
    "    \n",
    "        x_hat = self.decoder(c)\n",
    "        return x_hat, c\n",
    "    \n",
    "    @property\n",
    "    def device(self):\n",
    "        return next(self.parameters()).device\n",
    "    \n",
    "\n",
    "import pickle\n",
    "\n",
    "filename = r'/root/sparse_coding/auto_encoders.pkl'\n",
    "\n",
    "# Load the pickle file\n",
    "with open(filename, 'rb') as file:\n",
    "    autoencoders = pickle.load(file)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "dictionaries = [autoencoder.decoder.weight.data.T for autoencoder in autoencoders[0]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([2048, 2048])\n",
      "torch.Size([4096, 2048])\n",
      "torch.Size([8192, 2048])\n",
      "torch.Size([16384, 2048])\n",
      "torch.Size([32768, 2048])\n"
     ]
    }
   ],
   "source": [
    "for d in dictionaries:\n",
    "    print(d.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "smaller_dict, larger_dict = dictionaries[0], dictionaries[1]\n",
    "smaller_auto_encoder, larger_auto_encoder = autoencoders[0][0], autoencoders[0][1]"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# MCS"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.93541533 0.20955059 0.90894008 ... 0.08109202 0.05759869 0.0980377 ]\n"
     ]
    }
   ],
   "source": [
    "#Dictionary Comparison\n",
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "smaller_dict_features, _ = smaller_dict.shape\n",
    "larger_dict_features, _ = larger_dict.shape\n",
    "larger_dict = larger_dict.to(device)\n",
    "# Hungary algorithm\n",
    "from scipy.optimize import linear_sum_assignment\n",
    "# Calculate all cosine similarities and store in a 2D array\n",
    "cos_sims = np.zeros((smaller_dict_features, larger_dict_features))\n",
    "for idx, vector in enumerate(smaller_dict):\n",
    "    cos_sims[idx] = torch.nn.functional.cosine_similarity(vector.to(device), larger_dict, dim=1).cpu().numpy()\n",
    "# Convert to a minimization problem\n",
    "cos_sims = 1 - cos_sims\n",
    "# Use the Hungarian algorithm to solve the assignment problem\n",
    "row_ind, col_ind = linear_sum_assignment(cos_sims)\n",
    "# Retrieve the max cosine similarities and corresponding indices\n",
    "max_cosine_similarities = 1 - cos_sims[row_ind, col_ind]\n",
    "\n",
    "print(max_cosine_similarities)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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cDg0Y8aM2BaYxKKd+/b2dlVUVCgnJ0dOp1PXXnstf9/0QbTzvmLFCl133XUaNGiQcnNztWDBAp06daqfqk0ODQ0NmjZtmrxerxwOhzZt2vSV+2zfvl033XSTnE6n/uRP/kRr166NbZGW4TZs2GClpaVZ//iP/2h9+OGH1pw5c6yMjAwrEAj0Ov7Xv/61NWDAAGvZsmXWRx99ZD366KPWwIEDrQ8++KCfK09s0c7797//faumpsbau3evtX//fuuHP/yh5Xa7rd/+9rf9XHlii3beP9fa2mr98R//sfXNb37Tmj59ev8Um2Sinfuuri5r7Nix1pQpU6x3333Xam1ttbZv327t27evnytPbNHO+7p16yyn02mtW7fOam1ttd5++20rJyfHWrBgQT9Xntjeeust65FHHrFef/11S5K1cePGLx1/8OBB64/+6I+syspK66OPPrJWrVplDRgwwKqrq4tZjcYHlPHjx1sVFRXhx2fPnrW8Xq9VXV3d6/h77rnHmjp1asS6wsJC60c/+lFM60w20c77uc6cOWMNGTLEeuWVV2JVYlLqy7yfOXPGuuWWW6x/+Id/sMrKyggofRTt3K9evdq66qqrrNOnT/dXiUkp2nmvqKiwbrvttoh1lZWV1oQJE2JaZzK7kIDy0EMPWTfccEPEunvvvdcqLi6OWV1Gf8Vz+vRpNTc3y+fzhdelpKTI5/OpsbGx130aGxsjxktScXHxF47H+foy7+c6efKkuru7lZmZGasyk05f5/3xxx9XVlaWZs+e3R9lJqW+zP0bb7yhoqIiVVRUKDs7WzfeeKOefvppnT17tr/KTnh9mfdbbrlFzc3N4a+BDh48qLfeektTpkzpl5ovVfH4bDX614w/++wznT179ry7y2ZnZ+vjjz/udR+/39/reL/fH7M6k01f5v1cDz/8sLxe73lvaHyxvsz7u+++q5dffln79u3rhwqTV1/m/uDBg9q2bZtKS0v11ltv6cCBA7r//vvV3d2tJUuW9EfZCa8v8/79739fn332mSZOnCjLsnTmzBn9+Mc/1k9+8pP+KPmS9UWfraFQSP/7v/+rQYMG2f6cRndQkJiWLl2qDRs2aOPGjUpPT493OUnrxIkTmjVrll566SVdccUV8S7nktPT06OsrCy9+OKLGjNmjO6991498sgjqq2tjXdpSW379u16+umn9cILL2jPnj16/fXXtWXLFj3xxBPxLg02M7qDcsUVV2jAgAEKBAIR6wOBgDweT6/7eDyeqMbjfH2Z988tX75cS5cu1a9+9St94xvfiGWZSSfaef/Nb36jQ4cOadq0aeF1PT09kqTU1FS1tLTo6quvjm3RSaIv7/mcnBwNHDhQAwYMCK8bPny4/H6/Tp8+rbS0tJjWnAz6Mu+LFi3SrFmz9Jd/+ZeSpBEjRqizs1Pl5eV65JFHlJLCv7tj4Ys+W10uV0y6J5LhHZS0tDSNGTNG9fX14XU9PT2qr69XUVFRr/sUFRVFjJekrVu3fuF4nK8v8y5Jy5Yt0xNPPKG6ujqNHTu2P0pNKtHOe0FBgT744APt27cvvNx1112aNGmS9u3bp9zc3P4sP6H15T0/YcIEHThwIBwKJemTTz5RTk4O4eQC9WXeT548eV4I+TwkWvy0XMzE5bM1Zqff2mTDhg2W0+m01q5da3300UdWeXm5lZGRYfn9fsuyLGvWrFnWwoULw+N//etfW6mpqdby5cut/fv3W0uWLOEy4z6Idt6XLl1qpaWlWf/yL/9i/fd//3d4OXHiRLxeQkKKdt7PxVU8fRft3B85csQaMmSINXfuXKulpcXavHmzlZWVZT355JPxegkJKdp5X7JkiTVkyBDrZz/7mXXw4EHrl7/8pXX11Vdb99xzT7xeQkI6ceKEtXfvXmvv3r2WJOvZZ5+19u7dax0+fNiyLMtauHChNWvWrPD4zy8zfvDBB639+/dbNTU1XGZsWZa1atUqKy8vz0pLS7PGjx9v7dy5M7zt29/+tlVWVhYx/uc//7l17bXXWmlpadYNN9xgbdmypZ8rTg7RzPuVV15pSTpvWbJkSf8XnuCifb//fwSUixPt3L/33ntWYWGh5XQ6rauuusp66qmnrDNnzvRz1Ykvmnnv7u62fvrTn1pXX321lZ6ebuXm5lr333+/9fvf/77/C09g77zzTq9/Z38+12VlZda3v/3t8/YZNWqUlZaWZl111VXWmjVrYlqjw7LoiQEAALMYfQ4KAAC4NBFQAACAcQgoAADAOAQUAABgHAIKAAAwDgEFAAAYh4ACAACMQ0ABAADGIaAAAADjEFAAAIBxCCgAAMA4BBQAAGCc/wO+E6UeE/arAwAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Get the indices of the max cosine similarities in descending order\n",
    "max_indices = np.argsort(max_cosine_similarities)[::-1]\n",
    "max_cosine_similarities[max_indices][:20]\n",
    "(max_cosine_similarities > .9).sum()\n",
    "# Plot histogram of max_cosine_similarities\n",
    "import matplotlib.pyplot as plt\n",
    "plt.hist(max_cosine_similarities, bins=100)\n",
    "plt.show()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Model activations & Dictionary Activations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using pad_token, but it is not set yet.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loaded pretrained model EleutherAI/pythia-70m-deduped into HookedTransformer\n"
     ]
    }
   ],
   "source": [
    "# Load in the Pythia model w/ transformer lens\n",
    "model_name = \"EleutherAI/pythia-70m-deduped\"\n",
    "model = HookedTransformer.from_pretrained(model_name, device=device)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Found cached dataset parquet (/root/.cache/huggingface/datasets/NeelNanda___parquet/NeelNanda--pile-10k-72f566e9f7c464ab/0.0.0/2a3b91fbd88a2c90d1dbbb32b460cf621d31bd5b05b934492fdef7d8d6f236ec)\n",
      "Loading cached processed dataset at /root/.cache/huggingface/datasets/NeelNanda___parquet/NeelNanda--pile-10k-72f566e9f7c464ab/0.0.0/2a3b91fbd88a2c90d1dbbb32b460cf621d31bd5b05b934492fdef7d8d6f236ec/cache-27e019ffdbbb8e00.arrow\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "4adfba92c4fb4b7ab0bea1d1da9b8357",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Filter:   0%|          | 0/10000 [00:00<?, ? examples/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "dfdb04165a414ed2a779a8e2de0eb304",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Map:   0%|          | 0/9938 [00:00<?, ? examples/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Downnload dataset\n",
    "from datasets import Dataset, load_dataset\n",
    "dataset_name = \"NeelNanda/pile-10k\"\n",
    "token_amount=25\n",
    "dataset = load_dataset(dataset_name, split=\"train\").map(\n",
    "    lambda x: model.tokenizer(x['text']),\n",
    "    batched=True,\n",
    ").filter(\n",
    "    lambda x: len(x['input_ids']) > token_amount\n",
    ").map(\n",
    "    lambda x: {'input_ids': x['input_ids'][:token_amount]}\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "3be252e6c05d49239f02dcef10bbac93",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/156 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Now we can use the model to get the activations\n",
    "from torch.utils.data import DataLoader\n",
    "from tqdm.auto import tqdm\n",
    "from einops import rearrange\n",
    "neurons = model.W_in.shape[-1]\n",
    "datapoints = dataset.num_rows\n",
    "batch_size = 64\n",
    "layer = 2\n",
    "neuron_activations = torch.zeros((datapoints*token_amount, neurons))\n",
    "dictionary_activations = torch.zeros((datapoints*token_amount, smaller_dict_features))\n",
    "smaller_auto_encoder = smaller_auto_encoder.to(device)\n",
    "\n",
    "with torch.no_grad(), dataset.formatted_as(\"pt\"):\n",
    "    dl = DataLoader(dataset[\"input_ids\"], batch_size=batch_size)\n",
    "    for i, batch in enumerate(tqdm(dl)):\n",
    "        _, cache = model.run_with_cache(batch.to(device))\n",
    "        batched_neuron_activations = rearrange(cache[f\"blocks.{layer}.mlp.hook_post\"], \"b s n -> (b s) n\" )\n",
    "        neuron_activations[i*batch_size*token_amount:(i+1)*batch_size*token_amount,:] = batched_neuron_activations\n",
    "        reconstruction, batched_dictionary_activations = smaller_auto_encoder(batched_neuron_activations)\n",
    "        dictionary_activations[i*batch_size*token_amount:(i+1)*batch_size*token_amount,:] = batched_dictionary_activations"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Neuron Sparsity per Feature by Activations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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HZ9//jm++OILAEBaWhpcXFwQHh6OPn36ICYmBj4+Pjh16hSaNm0KANizZw86deqEmzdvwt3d/aU50tPToVQqkZaWBnt7e+29QSIiItIZTb+/9Tqys23bNjRt2hQ9e/aEs7MzGjdujP/7v/+TlicmJiI5ORmBgYFSm1KpRLNmzRAREQEAiIiIgIODg1ToAEBgYCBMTEzwzz//FLvdnJwcpKenqz2IiIjIOOm12Ll69SpWrlyJOnXqYO/evRg5ciTGjBmDdevWAQCSk5MBAC4uLmqvc3FxkZYlJyfD2dlZbbmZmRkcHR2lPs8LCwuDUqmUHh4eHtp+a0RERFRB6LXYUalUaNKkCebNm4fGjRvj448/xvDhw7Fq1Sqdbjc0NBRpaWnS48aNGzrdHhEREemPXosdNzc3+Pj4qLV5e3sjKSkJAODq6goAuHv3rlqfu3fvSstcXV2RkpKitjw/Px8PHz6U+jzP0tIS9vb2ag8iIiIyTnotdgICAhAXF6fWFh8fj+rVqwMAPD094erqioMHD0rL09PT8c8//8Df3x8A4O/vj9TUVERGRkp9Dh06BJVKhWbNmpXDuyAiIqKKzEyfGx8/fjxatGiBefPmoVevXvj333+xevVqrF69GgCgUCgwbtw4zJkzB3Xq1IGnpyemTp0Kd3d3dOvWDcDTkaB3331XOvyVl5eH0aNHo0+fPhqdiUVERETGTa+nngPAjh07EBoaioSEBHh6eiIkJATDhw+XlgshMH36dKxevRqpqalo2bIlVqxYgbp160p9Hj58iNGjR2P79u0wMTFB9+7dsXTpUtja2mqUgaeeExERGR5Nv7/1XuxUBCx2iIiIDI9BXGeHiIiISNdY7BAREZFRY7FDRERERo3FDhERERk1FjtERERk1FjsEBERkVFjsUNERERGjcUOERERGTUWO0RERGTUWOwQERGRUWOxQ0REREaNxQ4REREZNRY7REREZNRY7BAREZFRY7FDRERERo3FDhERERk1FjtERERk1FjsEBERkVFjsUNERERGjcUOERERGTUWO0RERGTUWOwQERGRUWOxQ0REREaNxQ4REREZNRY7REREZNRY7BAREZFRY7FDRERERo3FDhERERk1FjtERERk1FjsEBERkVFjsUNERERGjcUOERERGTUWO0RERGTUWOwQERGRUWOxQ0REREaNxQ4REREZ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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Find corresponding neurons activations between pythia & autoencoder\n",
    "# Get the activations for the best dict features\n",
    "thresholds = [round(0.1*x,1) for x in range(11)]\n",
    "all_activated_neurons = []\n",
    "for threshold in thresholds:\n",
    "    current_activated_neurons = []\n",
    "    for x in range(10):\n",
    "        best_feature = max_indices[x]\n",
    "        best_feature_activations = dictionary_activations[:, best_feature]\n",
    "        # Sort the features by activation, get the indices\n",
    "        nonzero_indices = torch.argsort(best_feature_activations, descending=True)\n",
    "        sorted_indices = nonzero_indices[:10]\n",
    "        t = (neuron_activations[sorted_indices, :] > threshold)\n",
    "        # ( And across the first dim)\n",
    "        t = t.all(dim=0)\n",
    "        neurons_activated = t.sum()\n",
    "        current_activated_neurons.append(neurons_activated)\n",
    "        # print(f\"Feature {x} is active for {t.sum()} neurons\")\n",
    "    all_activated_neurons.append(current_activated_neurons)\n",
    "# Plot boxplot w/ plotly\n",
    "\n",
    "plt.boxplot(all_activated_neurons, labels=thresholds)\n",
    "plt.xticks(rotation=45)\n",
    "plt.xlabel(\"Threshold\")\n",
    "plt.ylabel(\"Number of neurons activated\")\n",
    "plt.title(\"Features/Neurons activated\")\n",
    "# plt.ylim(0, 50)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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UxQVFaX3339fd9xxhzfrAgAAKBe3x9zY7XYFBwcrPj5efn5+5223ePFijxXnDYy5AQDA95j5/Hb7zE1iYuJFbwUHAACoam6Hm3nz5nmxDAAAAM+o0hmKAQAAPI1wAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALMW/qguwimKnoY17jykz+7SOnCpQZnaelm7LVEFhsWpXC9TVUWH//7l8Hco+owJD8rdLtUP8lXGyqEpqtksK8JOchlTklAxJNp2ty26T/O12+dsN+fv5K7egSHabTbWC/VTN4a9fTpxRQbEhh79dQQF2VQv0V70awYqNCJW/n12xtUPUu2OsJGn+un3auPeo8gqK1bxemHLPFCnrVL7yCoolw6kQh7+iwoJ1bUwN1asZorZX1tTmn4/r0Mkzigh1yOk09M3eo/r1+GlFhTtUu1qQalcL1NHcAh3PK5DdJnVsFKHrG9eWn912wd/53HE6dPKM6lYPUvuGtS66jtl1i52GvtlzVOvTj0iyqWPj2rq+Udm1VaSesraTmXNGx07lq1a1QEWFB5d7e5ciT/WVL9dzqfWBL6qsPqyM9xpvsMprzGYYhlHVRcyYMUMvvfSSMjMz1apVK73xxhtq3779edt/+OGHGjNmjPbt26errrpKU6ZM0a233urWvnJychQeHq7s7GyFhYV5pP7kHzI0fskOZWSf8cj2Lnd229nAZVaNkABNvitOt7SILvP5so5TdHiQxvVodt51zK6b/EOGRi3ephN5hRetrSL1XKy2imzvUuSpvvLlei61PvBFldWHlfFe4w2X+mvMzOd3lYebRYsWKTExUbNmzVKHDh00ffp0ffjhh9q1a5fq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NdL999+vDRs26KqrrpIk5efna+jQoapbt66CgoJ0ww036Ntvv3Vt5/jx43rggQdUp04dBQcH66qrrtLcuXMllb4stWrVKtlsNqWkpKhdu3YKCQlRp06dtGvXrhK1/ec//1GbNm0UFBSkRo0aafz48SoqKjpvX3766af629/+pltvvVWxsbFq27atHn/8cfXv39/V5veXpWw2m/7xj3/otttuU0hIiK655hqtX79eu3fv1o033qhq1aqpU6dOJfr5YmdULnaczvXHokWL1K1bNwUFBWnBggUlLkvNmzdP48eP13fffSebzSabzaZ58+apf//+uu2220rsr7CwUHXr1tWcOXPOWxPg6wg3gI/p37+/KwhI0ttvv61+/fqVapebm6ukpCRt2rRJKSkpstvtuvPOO+V0OiVJiYmJuvXWW/XAAw+oqKhIy5Yt0z//+U8tWLBAISEhZe57wYIFio+PLxWkJCkgIEDVqlWTJD399NP697//rfnz52vLli1q0qSJEhISdOzYMUnSmDFjtGPHDn322WdKS0vTzJkzFRERccHf+5lnntErr7yiTZs2yd/fv0QI+e9//6vExEQNGzZMO3bs0D/+8Q/NmzdPL7744nm3FxUVpeXLl+vkyZMX3O/vTZgwQYmJiUpNTVXTpk11//3369FHH9Xo0aO1adMmGYahIUOGuL29ix2nc0aNGqVhw4YpLS1NCQkJJZ7r1auXnnzySTVv3lwZGRnKyMhQr1699PDDDys5OVkZGRmutkuXLlVeXp569epl6vcGfIpXv3McgMf06dPHuOOOO4xDhw4ZDofD2Ldvn7Fv3z4jKCjIOHz4sHHHHXcYffr0Oe/6hw8fNiQZ27Ztcy07duyY0aBBA2PQoEFGZGSk8eKLL16whuDgYGPo0KEXbHPq1CkjICDAWLBggWtZQUGBUa9ePWPq1KmGYRhGjx49jH79+pW5/t69ew1JxtatWw3DMIyvvvrKkGR88cUXrjbLli0zJBmnT582DMMwunfvbkycOLHEdt59910jOjr6vHV+/fXXRoMGDYyAgACjXbt2xhNPPGGsWbOmRJsrr7zSePXVV12PJRnPPvus6/H69esNScacOXNcy95//30jKCjI9XjcuHFGq1atXI/PHcfz+f1xOtcf06dPL9Fu7ty5Rnh4+Hn3c06zZs2MKVOmuB736NHD6Nu373n3D1gBZ24AH1OnTh39+c9/1rx58zR37lz9+c9/LvOsx08//aT77rtPjRo1UlhYmGJjYyVJ+/fvd7WpWbOm5syZo5kzZ6px48YaNWrUBfdtGMZF69uzZ48KCwvVuXNn17KAgAC1b99eaWlpkqRBgwZp4cKFat26tZ5++mmtW7fuottt2bKl69/R0dGSpEOHDkmSvvvuOz3//POu8S2hoaEaMGCAMjIyznuJrWvXrkpPT1dKSor+8pe/aPv27erSpYsmTJjgdh2RkZGSpLi4uBLLzpw5o5ycnIv+TpJ7x0mS2rVr59b2fu/hhx92nenLysrSZ599VuKsF2BFhBvAB/Xv31/z5s3T/Pnzz/tB1aNHDx07dkyzZ8/Whg0btGHDBklnBwX/1urVq+Xn56eMjAzl5uZecL9XX321du7cWeH6//SnP+nnn3/W8OHDdfDgQXXv3l0jRoy44DoBAQGuf9tsNklyXbo5deqUxo8fr9TUVNfPtm3b9NNPPykoKOiC2+zSpYtGjhypFStW6Pnnn9eECRNK9dHF6rhQbRfj7nE6d8nPrMTERKWnp2v9+vV677331LBhQ3Xp0qVc2wJ8BeEG8EG33HKLCgoKVFhYWGr8hSQdPXpUu3bt0rPPPqvu3bvrmmuu0fHjx0u1W7dunaZMmaIlS5YoNDT0omNF7r//fn3xxRfaunVrqecKCwuVm5urxo0bKzAwUGvXri3x3LfffqtmzZq5ltWpU0d9+vTRe++9p+nTp+utt94y0wUltGnTRrt27VKTJk1K/djt7r/NNWvWTEVFRTpz5ky5azHD3ePkjsDAQBUXF5daXrt2bfXs2VNz587VvHnzyhyfBVgNt4IDPsjPz891icfPz6/U8zVr1lTt2rX11ltvKTo6Wvv37y91yenkyZPq3bu3hg4dqj/96U9q0KCBrrvuOvXo0UN/+ctfytzvE088oWXLlql79+6aMGGCbrjhBlWvXl2bNm3SlClTNGfOHLVu3VqDBg3SU089pVq1aumKK67Q1KlTlZeXp4ceekiSNHbsWLVt21bNmzdXfn6+li5dqmuuuabc/TF27FjddtttuuKKK/SXv/xFdrtd3333nX744Qe98MILZa5z44036r777lO7du1Uu3Zt7dixQ3/729900003KSwsrNy1mOHOcXJXbGys9u7dq9TUVDVo0EDVq1eXw+GQdPbS1G233abi4mL16dPHk78CcEnizA3go8LCws77IWy327Vw4UJt3rxZLVq00PDhw/XSSy+VaDNs2DBVq1ZNEydOlHR23MjEiRP16KOP6tdffy1zuw6HQytXrtTTTz+tf/zjH7r++ut13XXX6fXXX9fQoUNdE+9NnjxZd999t3r37q02bdpo9+7d+vzzz1WzZk1JZ88yjB49Wi1btlTXrl3l5+enhQsXlrsvEhIStHTpUq1YsULXXXedrr/+er366qu68sorL7jO/PnzdfPNN+uaa67R448/roSEBH3wwQflrsMsd46Tu+6++27dcsstuummm1SnTh29//77rufi4+MVHR2thIQE1atXz1PlA5csm+HOCEEAgM86deqU6tevr7lz5+quu+6q6nIAr+OyFABYlNPp1JEjR/TKK6+oRo0auv3226u6JKBSEG4AwKL279+vhg0bqkGDBpo3b578/XnLx+WBy1IAAMBSGFAMAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAs5f8BvhZxXI1bk1sAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Find number of non-zero activations for each feature in the dictionary\n",
    "nonzero_activations = dictionary_activations.count_nonzero(dim=0)\n",
    "# clip to 1\n",
    "nonzero_activations = nonzero_activations.clamp(max=1)\n",
    "# plot against the max cosine similarities\n",
    "# plt.hist(nonzero_activations.cpu().numpy(), bins=100)\n",
    "plt.scatter(max_cosine_similarities, nonzero_activations.cpu().numpy())\n",
    "# x-axis is the max cosine similarity\n",
    "# y-axis is the number of non-zero activations\n",
    "# now setting x-axis\n",
    "plt.xlabel(\"Max Cosine Similarity\")\n",
    "plt.ylabel(\"Number of Non-Zero Activations\")\n",
    "plt.show()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Feature Activation Analysis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "from circuitsvis.activations import text_neuron_activations\n",
    "# Get the activations for the best dict features\n",
    "def get_feature_datapoints(feature_index, dictionary_activations, dataset, k=10, setting=\"max\"):\n",
    "    best_feature_activations = dictionary_activations[:, feature_index]\n",
    "    # Sort the features by activation, get the indices\n",
    "    if setting==\"max\":\n",
    "        found_indices = torch.argsort(best_feature_activations, descending=True)[:k]\n",
    "    elif setting==\"uniform\":\n",
    "        sorted_values, sorted_indices = torch.sort(best_feature_activations, descending=True)\n",
    "        nonzero_indices = torch.nonzero(sorted_values)[:, 0]\n",
    "        uniform_indices = torch.linspace(0, nonzero_indices.shape[0]-1, k).round().long()\n",
    "        found_indices = sorted_indices[nonzero_indices][uniform_indices]\n",
    "        # Append the last indice of sorted_indices to found_indices\n",
    "        found_indices = torch.cat((found_indices, torch.tensor([sorted_indices[-1]])))\n",
    "    else: # random\n",
    "        # get nonzero indices\n",
    "        nonzero_indices = torch.nonzero(best_feature_activations)[:, 0]\n",
    "        # shuffle\n",
    "        shuffled_indices = nonzero_indices[torch.randperm(nonzero_indices.shape[0])]\n",
    "        found_indices = shuffled_indices[:k]\n",
    "    datapoint_indices =[np.unravel_index(i, (datapoints, token_amount)) for i in found_indices]\n",
    "    text_list = []\n",
    "    full_text = []\n",
    "    token_list = []\n",
    "    full_token_list = []\n",
    "    for md, s_ind in datapoint_indices:\n",
    "        md = int(md)\n",
    "        s_ind = int(s_ind)\n",
    "        full_tok = torch.tensor(dataset[md][\"input_ids\"])\n",
    "        full_text.append(model.tokenizer.decode(full_tok))\n",
    "        tok = dataset[md][\"input_ids\"][:s_ind+1]\n",
    "        text = model.tokenizer.decode(tok)\n",
    "        text_list.append(text)\n",
    "        token_list.append(tok)\n",
    "        full_token_list.append(full_tok)\n",
    "    return text_list, full_text, token_list, full_token_list\n",
    "\n",
    "def get_neuron_activation(token, feature, model):\n",
    "    with torch.no_grad():\n",
    "        _, cache = model.run_with_cache(token.to(model.cfg.device))\n",
    "        neuron_act_batch = cache[f\"blocks.{layer}.mlp.hook_post\"]\n",
    "        _, act = smaller_auto_encoder(neuron_act_batch)\n",
    "    return act[0, :, feature].tolist()\n",
    "\n",
    "def ablate_text(text, feature, model, setting=\"plot\"):\n",
    "    if isinstance(text, str):\n",
    "        text = [text]\n",
    "    display_text_list = []\n",
    "    activation_list = []\n",
    "    for t in text:\n",
    "        # Convert text into tokens\n",
    "        if isinstance(t, str): # If the text is a list of tokens\n",
    "            split_text = model.to_str_tokens(t, prepend_bos=False)\n",
    "            tokens = model.to_tokens(t, prepend_bos=False)\n",
    "        else: # t equals tokens\n",
    "            tokens = t\n",
    "            split_text = model.to_str_tokens(t, prepend_bos=False)\n",
    "        seq_size = tokens.shape[1]\n",
    "        if(seq_size == 1): # If the text is a single token, we can't ablate it\n",
    "            continue\n",
    "        original = get_neuron_activation(tokens, feature, model)[-1]\n",
    "        changed_activations = torch.zeros(seq_size, device=device).cpu()\n",
    "        for i in range(seq_size):\n",
    "            # Remove the i'th token from the input\n",
    "            ablated_tokens = torch.cat((tokens[:,:i], tokens[:,i+1:]), dim=1)\n",
    "            changed_activations[i] += get_neuron_activation(ablated_tokens, feature, model)[-1]\n",
    "        changed_activations -= original\n",
    "        display_text_list += [x.replace('\\n', '\\\\newline') for x in split_text] + [\"\\n\"]\n",
    "        activation_list += changed_activations.tolist() + [0.0]\n",
    "    activation_list = torch.tensor(activation_list).reshape(-1,1,1)\n",
    "    if setting == \"plot\":\n",
    "        return text_neuron_activations(tokens=display_text_list, activations=activation_list)\n",
    "    else:\n",
    "        return display_text_list, activation_list\n",
    "def visualize_text(text, feature, model, setting=\"plot\"):\n",
    "    if isinstance(text, str):\n",
    "        text = [text]\n",
    "    display_text_list = []\n",
    "    act_list = []\n",
    "    for t in text:\n",
    "        if isinstance(t, str): # If the text is a list of tokens\n",
    "            split_text = model.to_str_tokens(t, prepend_bos=False)\n",
    "            token = model.to_tokens(t, prepend_bos=False)\n",
    "        else: # t are tokens\n",
    "            token = t\n",
    "            split_text = model.to_str_tokens(t, prepend_bos=False)\n",
    "        display_text_list += [x.replace('\\n', '\\\\newline') for x in split_text] + [\"\\n\"]\n",
    "        act_list += get_neuron_activation(token, feature, model) + [0.0]\n",
    "    act_list = torch.tensor(act_list).reshape(-1,1,1)\n",
    "    return text_neuron_activations(tokens=display_text_list, activations=act_list)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# k=10\n",
    "# best_feature_activations = get_feature_datapoints(best_feature, dictionary_activations, dataset, setting=\"uniform\")\n",
    "# sorted_values, sorted_indices = torch.sort(best_feature_activations, descending=True)\n",
    "# nonzero_indices = torch.nonzero(sorted_values)[:, 0]\n",
    "\n",
    "# uniform_indices = torch.linspace(0, nonzero_indices.shape[0]-1, k).round().long()\n",
    "# found_indices = sorted_indices[nonzero_indices][uniform_indices]\n",
    "# # Append the last indice of sorted_indices to found_indices\n",
    "# found_indices = torch.cat((found_indices, torch.tensor([sorted_indices[-1]])))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "# sorted_indices, found_indices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Ablate the feature direction of the tokens\n",
    "# token_list is a list of tokens, convert to tensor of shape (batch_size, seq_len)\n",
    "from einops import rearrange\n",
    "def ablate_feature_direction(tokens, feature, model, autoencoder):\n",
    "    def mlp_ablation_hook(value, hook):\n",
    "        # Rearrange to fit autoencoder\n",
    "        int_val = rearrange(value, 'b s h -> (b s) h')\n",
    "\n",
    "        # Run through the autoencoder\n",
    "        _, act = autoencoder(int_val)\n",
    "        feature_to_ablate = feature # TODO: bring this out of the function\n",
    "\n",
    "        # Subtract value with feature direction*act_of_feature\n",
    "        feature_direction = torch.outer(act[:, feature_to_ablate], autoencoder.decoder.weight[:, feature_to_ablate])\n",
    "        batch, seq_len, hidden_size = value.shape\n",
    "        feature_direction = rearrange(feature_direction, '(b s) h -> b s h', b=batch, s=seq_len)\n",
    "        value -= feature_direction\n",
    "        return value\n",
    "    # def mlp_ablation_hook(value, hook):\n",
    "    #     # Rearrange to fit autoencoder\n",
    "    #     int_val = rearrange(value, 'b s h -> (b s) h')\n",
    "\n",
    "    #     # Run through the autoencoder\n",
    "    #     _, act = autoencoder(int_val)\n",
    "    #     feature_to_ablate = feature # TODO: bring this out of the function\n",
    "\n",
    "    #     # Subtract value with feature direction*act_of_feature\n",
    "    #     feature_direction = torch.outer(act[:, feature_to_ablate], autoencoder.decoder.weight[:, feature_to_ablate])\n",
    "    #     batch, seq_len, hidden_size = value.shape\n",
    "    #     feature_direction = rearrange(feature_direction, '(b s) h -> b s h', b=batch, s=seq_len)\n",
    "    #     value -= feature_direction\n",
    "    #     return value\n",
    "\n",
    "    return model.run_with_hooks(tokens, \n",
    "        fwd_hooks=[(\n",
    "            f\"blocks.{layer}.mlp.hook_post\", \n",
    "            mlp_ablation_hook\n",
    "            )]\n",
    "        )\n",
    "def visualize_logit_diff(text, features=None, setting=\"true_tokens\", verbose=False):\n",
    "    text = full_text\n",
    "    features = best_feature\n",
    "\n",
    "    if features==None:\n",
    "        features = torch.tensor([best_feature])\n",
    "    if isinstance(features, int):\n",
    "        features = torch.tensor([features])\n",
    "    if isinstance(features, list):\n",
    "        features = torch.tensor(features)\n",
    "    if isinstance(text, str):\n",
    "        text = [text]\n",
    "    text_list = []\n",
    "    logit_list = []\n",
    "    for t in text:\n",
    "        tokens = model.to_tokens(t, prepend_bos=False)\n",
    "        with torch.no_grad():\n",
    "            original_logits = model(tokens).log_softmax(-1).cpu()\n",
    "            ablated_logits = ablate_feature_direction(tokens, features, model, smaller_auto_encoder).log_softmax(-1).cpu()\n",
    "        diff_logits = ablated_logits  - original_logits# ablated > original -> negative diff\n",
    "        tokens = tokens.cpu()\n",
    "        if setting == \"true_tokens\":\n",
    "            split_text = model.to_str_tokens(t, prepend_bos=False)\n",
    "            gather_tokens = rearrange(tokens[:,1:], \"b s -> b s 1\") # TODO: verify this is correct\n",
    "            # Gather the logits for the true tokens\n",
    "            diff = rearrange(diff_logits[:, :-1].gather(-1,gather_tokens), \"b s n -> (b s n)\")\n",
    "        elif setting == \"max\":\n",
    "            # Negate the diff_logits to see which tokens have the largest effect on the neuron\n",
    "            val, ind = (-1*diff_logits).max(-1)\n",
    "            diff = rearrange(val[:, :-1], \"b s -> (b s)\")\n",
    "            diff*= -1 # Negate the values gathered\n",
    "            split_text = model.to_str_tokens(ind, prepend_bos=False)\n",
    "            gather_tokens = rearrange(ind[:,1:], \"1 s -> 1 s 1\")\n",
    "        split_text = split_text[1:] # Remove the first token since we're not predicting it\n",
    "        if(verbose):\n",
    "            text_list += [x.replace('\\n', '\\\\newline') for x in split_text] + [\"\\n\"]\n",
    "            text_list += [x.replace('\\n', '\\\\newline') for x in split_text] + [\"\\n\"]\n",
    "            orig = rearrange(original_logits[:, :-1].gather(-1, gather_tokens), \"b s n -> (b s n)\")\n",
    "            ablated = rearrange(ablated_logits[:, :-1].gather(-1, gather_tokens), \"b s n -> (b s n)\")\n",
    "            logit_list += orig.tolist() + [0.0]\n",
    "            logit_list += ablated.tolist() + [0.0]\n",
    "        text_list += [x.replace('\\n', '\\\\newline') for x in split_text] + [\"\\n\"]\n",
    "        logit_list += diff.tolist() + [0.0]\n",
    "    logit_list = torch.tensor(logit_list).reshape(-1,1,1)\n",
    "    if verbose:\n",
    "        print(f\"Max & Min logit-diff: {logit_list.max().item():.2f} & {logit_list.min().item():.2f}\")\n",
    "    return text_neuron_activations(tokens=text_list, activations=logit_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Max feature index: 6\n",
      "MCS: 0.9796159267425537\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div id=\"circuits-vis-ba9b8131-bc77\" style=\"margin: 15px 0;\"/>\n",
       "    <script crossorigin type=\"module\">\n",
       "    import { render, TextNeuronActivations } from \"https://unpkg.com/circuitsvis@1.40.0/dist/cdn/esm.js\";\n",
       "    render(\n",
       "      \"circuits-vis-ba9b8131-bc77\",\n",
       "      TextNeuronActivations,\n",
       "      {\"tokens\": [\"k\", \")*(-\", \"7\", \" +\", \" 11\", \" -\", \" 23\", \")*(\", \"3\", \"*\", \"k\", \"\\n\", \"-\", \"5\", \"\\\\newline\", \"Express\", \" (-\", \"3\", \" +\", \" 6\", \" +\", \" 0\", \")*(-\", \"4\", \"*\", \"n\", \" +\", \" 3\", \"*\", \"n\", \" +\", \" 2\", \"*\", \"n\", \"\\n\", \"-\", \"5\", \"\\\\newline\", \"Express\", \" (-\", \"3\", \" +\", \" 6\", \" +\", \" 0\", \")*(-\", \"4\", \"*\", \"n\", \" +\", \" 3\", \"*\", \"n\", \"\\n\", \"-\", \" 15\", \".\", \"\\\\newline\", \"2\", \"*\", \"m\", \" -\", \" 30\", \"\\\\newline\", \"Collect\", \" the\", \" terms\", \" in\", \" 34\", \"*\", \"a\", \" -\", \" 62\", \"*\", \"a\", \" -\", \" 76\", \"*\", \"a\", \"\\n\", \"-\", \" 15\", \".\", \"\\\\newline\", \"2\", \"*\", \"m\", \" -\", \" 30\", \"\\\\newline\", \"Collect\", \" the\", \" terms\", \" in\", \" 34\", \"*\", \"a\", \" -\", \" 62\", \"*\", \"a\", \"\\n\", \" give\", \" d\", \".\", \"\\\\newline\", \"105\", \"\\\\newline\", \"Express\", \" 37\", \" -\", \" 17\", \" +\", \" 62\", \"*\", \"t\", \"\\n\", \"-\", \"5\", \"\\\\newline\", \"Express\", \" (-\", \"3\", \" +\", \" 6\", \" +\", \" 0\", \")*(-\", \"4\", \"*\", \"n\", \"\\n\", \"d\", \" (-\", \"t\", \" +\", \" 0\", \"*\", \"t\", \" -\", \" 2\", \"*\", \"t\", \")*(-\", \"2\", \"*\", \"t\", \"**\", \"2\", \" -\", \" t\", \"**\", \"2\", \" +\", \" 4\", \"*\", \"t\", \"\\n\", \"k\", \")*(-\", \"7\", \" +\", \" 11\", \" -\", \" 23\", \")*(\", \"3\", \"*\", \"k\", \" -\", \" k\", \" -\", \" 3\", \"*\", \"k\", \"\\n\", \" give\", \" d\", \".\", \"\\\\newline\", \"105\", \"\\\\newline\", \"Express\", \" 37\", \" -\", \" 17\", \" +\", \" 62\", \"*\", \"t\", \" -\", \" 19\", \" as\", \" x\", \"*\", \"t\", \"\\n\"], \"activations\": [[[0.0]], [[0.0]], [[0.3825925588607788]], [[0.0]], [[0.14654171466827393]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[11.451762199401855]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.05007219314575195]], [[0.0]], [[0.034960031509399414]], [[0.0]], [[0.39595258235931396]], [[0.0]], [[0.502703070640564]], [[0.0]], [[10.147350311279297]], [[2.510822057723999]], [[1.0930638313293457]], [[0.0]], [[10.837610244750977]], [[2.035100221633911]], [[1.5598442554473877]], [[0.0]], [[10.913336753845215]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0500720739364624]], [[0.0]], [[0.034960031509399414]], [[0.0]], [[0.39595258235931396]], [[0.0]], [[0.5027033090591431]], [[0.0]], [[10.147350311279297]], [[2.510822296142578]], [[1.0930637121200562]], [[0.0]], [[10.83760929107666]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.5310606956481934]], [[5.399109840393066]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[8.065756797790527]], [[0.2063354253768921]], [[0.05749845504760742]], [[0.0]], [[10.55259895324707]], [[0.2337489128112793]], [[0.03168785572052002]], [[0.0]], [[10.743856430053711]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.5310606956481934]], [[5.399109840393066]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[8.065756797790527]], [[0.2063354253768921]], [[0.05749845504760742]], [[0.0]], [[10.55259895324707]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[10.17226505279541]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.05007290840148926]], [[0.0]], [[0.03496122360229492]], [[0.0]], [[0.39595329761505127]], [[0.0]], [[0.5027042627334595]], [[0.0]], [[10.147348403930664]], [[0.0]], [[0.0]], [[0.0]], [[0.8140331506729126]], [[0.0]], [[0.0]], [[0.0]], [[8.073732376098633]], [[0.0]], [[0.0]], [[0.0]], [[8.291744232177734]], [[0.0]], [[0.42724597454071045]], [[0.0]], [[9.696064949035645]], [[0.0]], [[1.838591456413269]], [[0.0]], [[3.8380608558654785]], [[0.0]], [[1.8153830766677856]], [[0.0]], [[0.0]], [[0.0]], [[9.958683967590332]], [[0.0]], [[0.0]], [[0.0]], [[0.3825916051864624]], [[0.0]], [[0.14654123783111572]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[11.451764106750488]], [[0.7091444730758667]], [[4.882965564727783]], [[0.02156209945678711]], [[0.0]], [[0.0]], [[9.938623428344727]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[10.172268867492676]], [[0.8576472997665405]], [[0.0]], [[0.0]], [[2.156186580657959]], [[0.0]], [[9.810439109802246]], [[0.0]]], \"firstDimensionName\": \"Layer\", \"secondDimensionName\": \"Neuron\"}\n",
       "    )\n",
       "    </script>"
      ],
      "text/plain": [
       "<circuitsvis.utils.render.RenderedHTML at 0x7f096673bac0>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "max_mcs= True\n",
    "if max_mcs:\n",
    "    N = 6\n",
    "    best_feature = max_indices[N]\n",
    "else: # by threshold\n",
    "    threshold = 0.3\n",
    "    error = 0.01\n",
    "    max_cosine_similarities[max_indices]\n",
    "    threshold_indices = np.nonzero((max_cosine_similarities[max_indices] > threshold-error) & (max_cosine_similarities[max_indices] < threshold+error))\n",
    "    N = threshold_indices[0][0]\n",
    "    best_feature = max_indices[N]\n",
    "\n",
    "print(f\"Max feature index: {N}\")\n",
    "print(f\"MCS: {max_cosine_similarities[best_feature]}\")\n",
    "text_list, full_text, token_list, full_token_list = get_feature_datapoints(best_feature, dictionary_activations, dataset, setting=\"max\")\n",
    "visualize_text(text_list, best_feature, model, setting=\"plot\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div id=\"circuits-vis-22d5730c-523c\" style=\"margin: 15px 0;\"/>\n",
       "    <script crossorigin type=\"module\">\n",
       "    import { render, TextNeuronActivations } from \"https://unpkg.com/circuitsvis@1.40.0/dist/cdn/esm.js\";\n",
       "    render(\n",
       "      \"circuits-vis-22d5730c-523c\",\n",
       "      TextNeuronActivations,\n",
       "      {\"tokens\": [\"k\", \")*(-\", \"7\", \" +\", \" 11\", \" -\", \" 23\", \")*(\", \"3\", \"*\", \"k\", \"\\n\", \"-\", \"5\", \"\\\\newline\", \"Express\", \" (-\", \"3\", \" +\", \" 6\", \" +\", \" 0\", \")*(-\", \"4\", \"*\", \"n\", \" +\", \" 3\", \"*\", \"n\", \" +\", \" 2\", \"*\", \"n\", \"\\n\", \"-\", \"5\", \"\\\\newline\", \"Express\", \" (-\", \"3\", \" +\", \" 6\", \" +\", \" 0\", \")*(-\", \"4\", \"*\", \"n\", \" +\", \" 3\", \"*\", \"n\", \"\\n\", \"-\", \" 15\", \".\", \"\\\\newline\", \"2\", \"*\", \"m\", \" -\", \" 30\", \"\\\\newline\", \"Collect\", \" the\", \" terms\", \" in\", \" 34\", \"*\", \"a\", \" -\", \" 62\", \"*\", \"a\", \" -\", \" 76\", \"*\", \"a\", \"\\n\", \"-\", \" 15\", \".\", \"\\\\newline\", \"2\", \"*\", \"m\", \" -\", \" 30\", \"\\\\newline\", \"Collect\", \" the\", \" terms\", \" in\", \" 34\", \"*\", \"a\", \" -\", \" 62\", \"*\", \"a\", \"\\n\", \" give\", \" d\", \".\", \"\\\\newline\", \"105\", \"\\\\newline\", \"Express\", \" 37\", \" -\", \" 17\", \" +\", \" 62\", \"*\", \"t\", \"\\n\", \"-\", \"5\", \"\\\\newline\", \"Express\", \" (-\", \"3\", \" +\", \" 6\", \" +\", \" 0\", \")*(-\", \"4\", \"*\", \"n\", \"\\n\", \"d\", \" (-\", \"t\", \" +\", \" 0\", \"*\", \"t\", \" -\", \" 2\", \"*\", \"t\", \")*(-\", \"2\", \"*\", \"t\", \"**\", \"2\", \" -\", \" t\", \"**\", \"2\", \" +\", \" 4\", \"*\", \"t\", \"\\n\", \"k\", \")*(-\", \"7\", \" +\", \" 11\", \" -\", \" 23\", \")*(\", \"3\", \"*\", \"k\", \" -\", \" k\", \" -\", \" 3\", \"*\", \"k\", \"\\n\", \" give\", \" d\", \".\", \"\\\\newline\", \"105\", \"\\\\newline\", \"Express\", \" 37\", \" -\", \" 17\", \" +\", \" 62\", \"*\", \"t\", \" -\", \" 19\", \" as\", \" x\", \"*\", \"t\", \"\\n\"], \"activations\": [[[-0.8345355987548828]], [[-0.6108283996582031]], [[-0.0053653717041015625]], [[-0.4133338928222656]], [[-0.0053157806396484375]], [[-0.6537761688232422]], [[-0.09076309204101562]], [[0.09437179565429688]], [[-0.8192787170410156]], [[-8.423026084899902]], [[-11.451762199401855]], [[0.0]], [[-0.07811832427978516]], [[0.006089210510253906]], [[0.0941019058227539]], [[-1.4429121017456055]], [[-0.013202667236328125]], [[0.052420616149902344]], [[-0.021673202514648438]], [[0.017543792724609375]], [[-0.03752613067626953]], [[-0.0030164718627929688]], [[-0.33080291748046875]], [[-0.029730796813964844]], [[-0.03279399871826172]], [[-0.11226558685302734]], [[0.02077198028564453]], [[0.02622509002685547]], [[-0.08753299713134766]], [[-0.018660545349121094]], [[-0.034401893615722656]], [[-0.4353351593017578]], [[-5.407068252563477]], [[-10.913336753845215]], [[0.0]], [[-0.044200897216796875]], [[0.03635597229003906]], [[0.09290218353271484]], [[-1.2120590209960938]], [[-0.011838912963867188]], [[0.11215782165527344]], [[0.018926620483398438]], [[0.0185089111328125]], [[0.02093982696533203]], [[-0.02202892303466797]], [[-0.3663606643676758]], [[-0.15027713775634766]], [[-0.2022686004638672]], [[-0.6708717346191406]], [[-0.11631965637207031]], [[-0.46622467041015625]], [[-6.371661186218262]], [[-10.83760929107666]], [[0.0]], [[-0.00531768798828125]], [[0.009163856506347656]], [[-0.08741092681884766]], [[0.08261585235595703]], [[0.011522293090820312]], [[0.010962486267089844]], [[-0.05451011657714844]], [[-0.2845592498779297]], [[-0.04046154022216797]], [[-0.056374549865722656]], [[-3.0547618865966797]], [[-0.10775566101074219]], [[-0.009368896484375]], [[-0.20626354217529297]], [[-0.06441688537597656]], [[0.038390159606933594]], [[-0.1775646209716797]], [[-0.11668109893798828]], [[0.03716850280761719]], [[0.12266826629638672]], [[-0.13731956481933594]], [[-0.2991008758544922]], [[-0.9521579742431641]], [[-7.674153804779053]], [[-10.743856430053711]], [[0.0]], [[0.04781627655029297]], [[0.007152557373046875]], [[-0.09157276153564453]], [[0.11346435546875]], [[0.038677215576171875]], [[0.05640220642089844]], [[-0.056365013122558594]], [[-0.35420989990234375]], [[-0.0027818679809570312]], [[-0.048790931701660156]], [[-2.796401023864746]], [[-0.05107402801513672]], [[-0.005835533142089844]], [[-0.17430591583251953]], [[-0.054360389709472656]], [[-0.052398681640625]], [[-0.6708669662475586]], [[-0.40163135528564453]], [[-0.8801660537719727]], [[-7.855289459228516]], [[-10.55259895324707]], [[0.0]], [[-0.028313636779785156]], [[-0.07783889770507812]], [[0.05576133728027344]], [[0.14098739624023438]], [[-0.17304611206054688]], [[0.11752033233642578]], [[-1.8306245803833008]], [[-0.0590362548828125]], [[-0.2526254653930664]], [[0.019529342651367188]], [[-0.1355113983154297]], [[-0.5753898620605469]], [[-8.12409782409668]], [[-10.17226505279541]], [[0.0]], [[-0.020107269287109375]], [[0.0676107406616211]], [[0.06290912628173828]], [[-1.3454933166503906]], [[-0.13395023345947266]], [[0.014935493469238281]], [[-0.026618003845214844]], [[-0.08546161651611328]], [[-0.07857704162597656]], [[-0.0913228988647461]], [[-0.20285511016845703]], [[-0.7965307235717773]], [[-8.039039611816406]], [[-10.147348403930664]], [[0.0]], [[0.03084850311279297]], [[-0.0795450210571289]], [[0.0021734237670898438]], [[-0.06268978118896484]], [[0.007121086120605469]], [[0.12627220153808594]], [[-0.02599811553955078]], [[-0.043211936950683594]], [[-0.004979133605957031]], [[0.12038993835449219]], [[-0.025709152221679688]], [[-1.6653108596801758]], [[0.09710407257080078]], [[0.14728069305419922]], [[0.030905723571777344]], [[0.23437118530273438]], [[0.0999155044555664]], [[-0.05570507049560547]], [[0.06804275512695312]], [[0.21267414093017578]], [[0.2096414566040039]], [[-0.12821674346923828]], [[-0.3888225555419922]], [[-6.041129112243652]], [[-9.958683967590332]], [[0.0]], [[-0.03235149383544922]], [[-0.9484119415283203]], [[0.1188974380493164]], [[-0.3171243667602539]], [[0.10508441925048828]], [[0.3510103225708008]], [[0.03678321838378906]], [[-0.5317697525024414]], [[0.18431568145751953]], [[0.9007816314697266]], [[0.12229251861572266]], [[0.23462963104248047]], [[0.13405132293701172]], [[0.9762792587280273]], [[-0.41543102264404297]], [[-5.657803535461426]], [[-9.938623428344727]], [[0.0]], [[-0.04803276062011719]], [[-0.03635120391845703]], [[-0.0011749267578125]], [[0.1520709991455078]], [[-0.12297439575195312]], [[0.105224609375]], [[-2.2231359481811523]], [[0.0008039474487304688]], [[-0.05913734436035156]], [[0.03548240661621094]], [[0.0820465087890625]], [[0.020867347717285156]], [[-0.12665176391601562]], [[-0.7609148025512695]], [[0.026172637939453125]], [[-0.14283180236816406]], [[0.5965003967285156]], [[-0.1715526580810547]], [[-5.757231712341309]], [[-9.810439109802246]], [[0.0]]], \"firstDimensionName\": \"Layer\", \"secondDimensionName\": \"Neuron\"}\n",
       "    )\n",
       "    </script>"
      ],
      "text/plain": [
       "<circuitsvis.utils.render.RenderedHTML at 0x7f09665abf70>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ablate_text(text_list, best_feature, model, setting=\"plot\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div id=\"circuits-vis-2aa0434c-db0c\" style=\"margin: 15px 0;\"/>\n",
       "    <script crossorigin type=\"module\">\n",
       "    import { render, TextNeuronActivations } from \"https://unpkg.com/circuitsvis@1.40.0/dist/cdn/esm.js\";\n",
       "    render(\n",
       "      \"circuits-vis-2aa0434c-db0c\",\n",
       "      TextNeuronActivations,\n",
       "      {\"tokens\": [\")*(-\", \"7\", \" +\", \" 11\", \" -\", \" 23\", \")*(\", \"3\", \"*\", \"k\", \" -\", \" k\", \" -\", \" 3\", \"*\", \"k\", \")*(\", \"2\", \" -\", \" 2\", \" -\", \" 2\", \")\", \" to\", \"\\n\", \"5\", \"\\\\newline\", \"Express\", \" (-\", \"3\", \" +\", \" 6\", \" +\", \" 0\", \")*(-\", \"4\", \"*\", \"n\", \" +\", \" 3\", \"*\", \"n\", \" +\", \" 2\", \"*\", \"n\", \")\", \" +\", \" 3\", \"\\n\", \"5\", \"\\\\newline\", \"Express\", \" (-\", \"3\", \" +\", \" 6\", \" +\", \" 0\", \")*(-\", \"4\", \"*\", \"n\", \" +\", \" 3\", \"*\", \"n\", \" +\", \" 2\", \"*\", \"n\", \")\", \" +\", \" 3\", \"\\n\", \" 15\", \".\", \"\\\\newline\", \"2\", \"*\", \"m\", \" -\", \" 30\", \"\\\\newline\", \"Collect\", \" the\", \" terms\", \" in\", \" 34\", \"*\", \"a\", \" -\", \" 62\", \"*\", \"a\", \" -\", \" 76\", \"*\", \"a\", \"\\n\", \" 15\", \".\", \"\\\\newline\", \"2\", \"*\", \"m\", \" -\", \" 30\", \"\\\\newline\", \"Collect\", \" the\", \" terms\", \" in\", \" 34\", \"*\", \"a\", \" -\", \" 62\", \"*\", \"a\", \" -\", \" 76\", \"*\", \"a\", \"\\n\", \" d\", \".\", \"\\\\newline\", \"105\", \"\\\\newline\", \"Express\", \" 37\", \" -\", \" 17\", \" +\", \" 62\", \"*\", \"t\", \" -\", \" 19\", \" as\", \" x\", \"*\", \"t\", \" +\", \" y\", \" and\", \" give\", \" x\", \"\\n\", \"5\", \"\\\\newline\", \"Express\", \" (-\", \"3\", \" +\", \" 6\", \" +\", \" 0\", \")*(-\", \"4\", \"*\", \"n\", \" +\", \" 3\", \"*\", \"n\", \" +\", \" 2\", \"*\", \"n\", \")\", \" +\", \" 3\", \"\\n\", \" (-\", \"t\", \" +\", \" 0\", \"*\", \"t\", \" -\", \" 2\", \"*\", \"t\", \")*(-\", \"2\", \"*\", \"t\", \"**\", \"2\", \" -\", \" t\", \"**\", \"2\", \" +\", \" 4\", \"*\", \"t\", \"\\n\", \")*(-\", \"7\", \" +\", \" 11\", \" -\", \" 23\", \")*(\", \"3\", \"*\", \"k\", \" -\", \" k\", \" -\", \" 3\", \"*\", \"k\", \")*(\", \"2\", \" -\", \" 2\", \" -\", \" 2\", \")\", \" to\", \"\\n\", \" d\", \".\", \"\\\\newline\", \"105\", \"\\\\newline\", \"Express\", \" 37\", \" -\", \" 17\", \" +\", \" 62\", \"*\", \"t\", \" -\", \" 19\", \" as\", \" x\", \"*\", \"t\", \" +\", \" y\", \" and\", \" give\", \" x\", \"\\n\"], \"activations\": [[[0.0]], [[0.0]], [[-0.004070878028869629]], [[-0.0005769729614257812]], [[0.00035834312438964844]], [[0.005272865295410156]], [[-0.005279541015625]], [[-0.004613399505615234]], [[0.0006889700889587402]], [[-0.0004671812057495117]], [[0.18132340908050537]], [[-0.18854284286499023]], [[-0.03236132860183716]], [[-0.10094881057739258]], [[-0.022349804639816284]], [[-0.01839691586792469]], [[0.6600689888000488]], [[-0.0023862123489379883]], [[0.11879158020019531]], [[0.029135465621948242]], [[0.01827263832092285]], [[-0.007737994194030762]], [[-0.07585883140563965]], [[-0.04873991012573242]], [[0.0]], [[0.0]], [[8.58306884765625e-06]], [[0.0]], [[0.0]], [[0.0]], [[0.0019161701202392578]], [[-0.000110626220703125]], [[-0.0003039836883544922]], [[0.0010852813720703125]], [[-0.0027170181274414062]], [[-0.0009546279907226562]], [[-0.01805633306503296]], [[-0.0038750171661376953]], [[-0.19139176607131958]], [[-0.10472226142883301]], [[-0.08331608772277832]], [[-0.002236238680779934]], [[-0.11164313554763794]], [[0.1297590732574463]], [[-0.06812779605388641]], [[-0.0002993923262692988]], [[0.005713105201721191]], [[-0.00042492151260375977]], [[-0.06960690021514893]], [[0.0]], [[0.0]], [[8.58306884765625e-06]], [[0.0]], [[0.0]], [[0.0]], [[0.0019161701202392578]], [[-0.000110626220703125]], [[-0.0003039836883544922]], [[0.0010852813720703125]], [[-0.0027170181274414062]], [[-0.0009546279907226562]], [[-0.01805633306503296]], [[-0.0038750171661376953]], [[-0.19139176607131958]], [[-0.10472226142883301]], [[-0.08331608772277832]], [[-0.002236238680779934]], [[-0.11164313554763794]], [[0.1297590732574463]], [[-0.06812779605388641]], [[-0.0002993923262692988]], [[0.005713105201721191]], [[-0.00042492151260375977]], [[-0.06960690021514893]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0749664306640625]], [[-0.17396104335784912]], [[0.05540275573730469]], [[0.012593388557434082]], [[-0.09571623802185059]], [[-0.001023516058921814]], [[3.781728446483612e-05]], [[-2.7801841497421265e-05]], [[-0.0037746429443359375]], [[0.0012583136558532715]], [[0.1494312286376953]], [[0.21044206619262695]], [[-0.1127619743347168]], [[-0.0025012120604515076]], [[-0.010436300188302994]], [[0.22803616523742676]], [[-0.030842304229736328]], [[-0.001309812068939209]], [[-0.006543198134750128]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0749664306640625]], [[-0.17396104335784912]], [[0.05540275573730469]], [[0.012593388557434082]], [[-0.09571623802185059]], [[-0.001023516058921814]], [[3.781728446483612e-05]], [[-2.7801841497421265e-05]], [[-0.0037746429443359375]], [[0.0012583136558532715]], [[0.1494312286376953]], [[0.21044206619262695]], [[-0.1127619743347168]], [[-0.0025012120604515076]], [[-0.010436300188302994]], [[0.22803616523742676]], [[-0.030842304229736328]], [[-0.001309812068939209]], [[-0.006543198134750128]], [[0.0]], [[0.0]], [[0.00042438507080078125]], [[0.0]], [[0.0]], [[0.0]], [[-0.035582542419433594]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[-0.03609585762023926]], [[-0.06928586959838867]], [[0.08770418167114258]], [[0.010953664779663086]], [[0.22394603490829468]], [[-0.016128381714224815]], [[0.026726603507995605]], [[0.07708477973937988]], [[-0.10972517728805542]], [[0.1445295810699463]], [[-0.05622285604476929]], [[0.0]], [[0.0]], [[8.58306884765625e-06]], [[0.0]], [[0.0]], [[0.0]], [[0.0019161701202392578]], [[-0.000110626220703125]], [[-0.0003039836883544922]], [[0.0010852813720703125]], [[-0.0027170181274414062]], [[-0.0009546279907226562]], [[-0.01805633306503296]], [[-0.0038750171661376953]], [[-0.19139176607131958]], [[-0.10472226142883301]], [[-0.08331608772277832]], [[-0.002236238680779934]], [[-0.11164313554763794]], [[0.1297590732574463]], [[-0.06812779605388641]], [[-0.0002993923262692988]], [[0.005713105201721191]], [[-0.00042492151260375977]], [[-0.06960690021514893]], [[0.0]], [[0.0]], [[0.0]], [[-0.0190201997756958]], [[0.008339881896972656]], [[-0.00525665283203125]], [[-0.012348175048828125]], [[-0.6525459289550781]], [[-0.04081535339355469]], [[-0.042460858821868896]], [[-0.09622763842344284]], [[0.3180246353149414]], [[0.01655864715576172]], [[-0.004156351089477539]], [[-0.14275193214416504]], [[-1.0497970581054688]], [[-0.016550213098526]], [[-0.14966928958892822]], [[-0.07878875732421875]], [[-0.029917359352111816]], [[0.012459427118301392]], [[0.020924627780914307]], [[-0.15477538108825684]], [[-0.005065441131591797]], [[-0.006832769140601158]], [[0.0]], [[0.0]], [[0.0]], [[-0.004070878028869629]], [[-0.0005769729614257812]], [[0.00035834312438964844]], [[0.005272865295410156]], [[-0.005279541015625]], [[-0.004613399505615234]], [[0.0006889700889587402]], [[-0.0004671812057495117]], [[0.18132340908050537]], [[-0.18854284286499023]], [[-0.03236132860183716]], [[-0.10094881057739258]], [[-0.022349804639816284]], [[-0.01839691586792469]], [[0.6600689888000488]], [[-0.0023862123489379883]], [[0.11879158020019531]], [[0.029135465621948242]], [[0.01827263832092285]], [[-0.007737994194030762]], [[-0.07585883140563965]], [[-0.04873991012573242]], [[0.0]], [[0.0]], [[0.00042438507080078125]], [[0.0]], [[0.0]], [[0.0]], [[-0.035582542419433594]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[-0.03609585762023926]], [[-0.06928586959838867]], [[0.08770418167114258]], [[0.010953664779663086]], [[0.22394603490829468]], [[-0.016128381714224815]], [[0.026726603507995605]], [[0.07708477973937988]], [[-0.10972517728805542]], [[0.1445295810699463]], [[-0.05622285604476929]], [[0.0]]], \"firstDimensionName\": \"Layer\", \"secondDimensionName\": \"Neuron\"}\n",
       "    )\n",
       "    </script>"
      ],
      "text/plain": [
       "<circuitsvis.utils.render.RenderedHTML at 0x7f09665a9150>"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "visualize_logit_diff(full_text, best_feature)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div id=\"circuits-vis-d98a2455-9b65\" style=\"margin: 15px 0;\"/>\n",
       "    <script crossorigin type=\"module\">\n",
       "    import { render, TextNeuronActivations } from \"https://unpkg.com/circuitsvis@1.40.0/dist/cdn/esm.js\";\n",
       "    render(\n",
       "      \"circuits-vis-d98a2455-9b65\",\n",
       "      TextNeuronActivations,\n",
       "      {\"tokens\": [\"k\", \")*(-\", \"7\", \" +\", \" 11\", \" -\", \" 23\", \")*(\", \"3\", \"*\", \"k\", \"\\n\", \"*((\", \"c\", \"*\", \"c\", \"**(\", \"5\", \"/\", \"4\", \")*\", \"c\", \"\\n\", \"<!\", \"do\", \"ctype\", \" html\", \">\", \"\\\\newline\", \"<\", \"html\", \" lang\", \"=\\\"\", \"en\", \"\\\">\", \"\\\\newline\", \"<\", \"head\", \">\", \"\\\\newline\", \"  \", \"<\", \"meta\", \" charset\", \"=\\\"\", \"UTF\", \"\\n\", \"2\", \" -\", \" 123\", \"*\", \"h\", \"**\", \"\\n\", \"#\", \" Translation\", \" of\", \" O\", \"\\n\", \"![](\", \"br\", \"j\", \"cancer\", \"0001\", \"9\", \"-\", \"01\", \"62\", \".\", \"tif\", \" \\\"\", \"sc\", \"anned\", \"-\", \"page\", \"\\\"){\", \".\", \"482\", \"}\", \"\\\\newline\", \"\\\\newline\", \"![](\", \"br\", \"j\", \"\\n\", \"**\", \"2\", \" -\", \" sqrt\", \"(\", \"242\", \"\\n\", \"<?\", \"php\", \"\\\\newline\", \"/**\", \"\\\\newline\", \" *\", \" Zend\", \" Framework\", \"\\\\newline\", \" *\", \"\\\\newline\", \" *\", \" LICENSE\", \"\\\\newline\", \" *\", \"\\\\newline\", \" *\", \" This\", \" source\", \"\\n\", \"The\", \" content\", \" published\", \" in\", \" C\", \"ureus\", \" is\", \" the\", \" result\", \" of\", \" clinical\", \" experience\", \" and\", \"/\", \"or\", \" research\", \" by\", \" independent\", \" individuals\", \" or\", \" organizations\", \"\\n\", \"/**\", \"\\\\newline\", \" *\", \" Copyright\", \" (\", \"c\", \")\", \" 2016\", \"-\", \"present\", \",\", \" Facebook\", \"\\n\", \"Our\", \" Mission\", \":\", \" Do\", \" what\", \" we\", \" say\", \" we\", \" will\", \" do\", \"\\n\"], \"activations\": [[[0.0]], [[0.0]], [[0.3825925588607788]], [[0.0]], [[0.14654171466827393]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[11.451762199401855]], [[0.0]], [[0.0]], [[0.480354905128479]], [[0.0]], [[4.056324005126953]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[4.339581489562988]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[1.2200978994369507]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[8.058930397033691]], [[0.6852923631668091]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.46478068828582764]], [[0.0]], [[0.0]], [[0.0]], [[0.1345841884613037]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.06469857692718506]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.34347963333129883]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.21111643314361572]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.6912509202957153]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.03602731227874756]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.1248558759689331]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.45415568351745605]], [[0.0]], [[0.049817800521850586]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.01827847957611084]], [[0.0]], [[0.0]], [[0.0003781318664550781]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]]], \"firstDimensionName\": \"Layer\", \"secondDimensionName\": \"Neuron\"}\n",
       "    )\n",
       "    </script>"
      ],
      "text/plain": [
       "<circuitsvis.utils.render.RenderedHTML at 0x7f09e813f7c0>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Instead of top-k examples, just random samples from non-zero values\n",
    "text_list, full_text, _, _ = get_feature_datapoints(best_feature, dictionary_activations, dataset, setting=\"uniform\", k=10)\n",
    "visualize_text(text_list, best_feature, model, setting=\"plot\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div id=\"circuits-vis-bc899207-bdf6\" style=\"margin: 15px 0;\"/>\n",
       "    <script crossorigin type=\"module\">\n",
       "    import { render, TextNeuronActivations } from \"https://unpkg.com/circuitsvis@1.40.0/dist/cdn/esm.js\";\n",
       "    render(\n",
       "      \"circuits-vis-bc899207-bdf6\",\n",
       "      TextNeuronActivations,\n",
       "      {\"tokens\": [\"*\", \"n\", \"\\n\", \"*\", \"j\", \"\\n\", \"*\", \"5\", \"\\n\", \"x\", \"n\", \"\\n\", \"4\", \"n\", \"\\n\", \"*\", \"]\", \"\\n\"], \"activations\": [[[0.0]], [[6.842297554016113]], [[0.0]], [[0.0]], [[6.136471748352051]], [[0.0]], [[0.0]], [[3.005829334259033]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]]], \"firstDimensionName\": \"Layer\", \"secondDimensionName\": \"Neuron\"}\n",
       "    )\n",
       "    </script>"
      ],
      "text/plain": [
       "<circuitsvis.utils.render.RenderedHTML at 0x7f09665853c0>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Specific examples\n",
    "\n",
    "#f5\n",
    "text_list = [\n",
    "    ' I do.\"\"',\n",
    "    'I do\"\"',\n",
    "    'I do?\"\"',\n",
    "    \"I do''\"\n",
    "\n",
    "]\n",
    "#f52\n",
    "text_list = [\n",
    "    \" $\",\n",
    "    \" for $\",\n",
    "    \" integral $\",\n",
    "    \" for integral $\",\n",
    "    \" sold $\",\n",
    "    \" hey $\",\n",
    "    \" 1 $\",\n",
    "    \" sold for $\",\n",
    "    \" for all $\",\n",
    "    \" sold for all $\",\n",
    "    \" profit for all $\",\n",
    "    \" \\nfor all $\",\n",
    "    \" {] for all $\",\n",
    "]\n",
    "#f3?\n",
    "text_list = [\n",
    "    \"www\",\n",
    "    \" www.\",\n",
    "    \" vol. www.\",\n",
    "    # \" go to the www.\",\n",
    "    \" vol www.\",\n",
    "    \"://aaa\"\n",
    "    \" http://aaa\",\n",
    "]\n",
    "#f4\n",
    "text_list = [\n",
    "    \"' '\",\n",
    "    '\" \"',\n",
    "    '?\" \"',\n",
    "    '.\" \"',\n",
    "    '.\" \\'',\n",
    "    '.\" d',\n",
    "    '.\" }',\n",
    "    '.\" 1',\n",
    "    ' \"',\n",
    "]\n",
    "#f5\n",
    "text_list = [\n",
    "    \"-type\",\n",
    "    \" silica nanoparticles multidrug resistance\",\n",
    "    \" type-type-type\",\n",
    "]\n",
    "#f6\n",
    "text_list = [\n",
    "    \"*n\",\n",
    "    \"*j\",\n",
    "    \"*5\",\n",
    "    \"xn\",\n",
    "    \"4n\",\n",
    "    \"*]\",\n",
    "]\n",
    "\n",
    "visualize_text(text_list, best_feature, model, setting=\"plot\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "*[token]\n",
      "Top-20 increasing: ['w', 'h', 'v', 't', 'd', 'b', 'k', 'n', 'm', 'f', 'r', 'p', 'q', 'o', 's', 'l', 'u', 'e', 'i', 'c']\n",
      "Top-20 increasing: ['7.68', '7.61', '7.35', '7.21', '7.20', '7.19', '6.95', '6.84', '6.74', '6.73', '6.63', '6.43', '6.36', '6.28', '6.28', '6.28', '6.23', '6.22', '6.18', '6.16']\n",
      "Top-20 decreasing: ['\"', ')', '<|endoftext|>', '&', '+', ';', '(', '?', '*', '$', '.', ',', ':', \"'\", '>', '#', '@', '<', '!', '%']\n",
      "Top-20 decreasing: ['0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00']\n"
     ]
    }
   ],
   "source": [
    "# Verify $ feature is math related & anti-money\n",
    "# minimal_activating_example = \" for all $\" # f52 (GOOD)\n",
    "# minimal_activating_example = \". www.\" # f3 (???)\n",
    "# minimal_activating_example = ' \"' # f4 (GOOD)\n",
    "# minimal_activating_example = 'type' # f5 (BAD/ misleading)\n",
    "# minimal_activating_example = '-type' # f5 (BAD/ misleading)\n",
    "# minimal_activating_example = '*' # f6 (GOOD)\n",
    "# minimal_activating_example = 'n' # f6 (GOOD)\n",
    "minimal_activating_example = ' carl' # f6 (GOOD)\n",
    "\n",
    "def prepend_all_tokens_and_get_feature_activation(model, minimal_activating_example, feature, setting=\"prepend\"):\n",
    "    tokens = model.to_tokens(minimal_activating_example, prepend_bos=False)\n",
    "\n",
    "    # Run through every number up to vocab size\n",
    "    vocab_size = model.cfg.d_vocab\n",
    "    batch_size = 256*4  # Define your desired batch size\n",
    "\n",
    "    dollar_feature_activations = torch.zeros(vocab_size)\n",
    "    for start in range(0, vocab_size, batch_size):\n",
    "        end = min(start + batch_size, vocab_size)\n",
    "\n",
    "        token_prep = torch.arange(start, end).to(device)\n",
    "        token_prep = token_prep.unsqueeze(1)  # Add a dimension for concatenation\n",
    "\n",
    "        # 1. Prepend to the tokens\n",
    "        if setting == \"prepend\":\n",
    "            tokens_catted = torch.cat((token_prep, tokens.repeat(end - start, 1)), dim=1)\n",
    "        elif setting == \"append\":\n",
    "            tokens_catted = torch.cat((tokens.repeat(end - start, 1), token_prep), dim=1)\n",
    "        else:\n",
    "            raise ValueError(f\"Unknown setting: {setting}\")\n",
    "\n",
    "        # 2. Run through the model\n",
    "        with torch.no_grad():\n",
    "            _, cache = model.run_with_cache(tokens_catted.to(device))\n",
    "            neuron_act_batch = cache[f\"blocks.{layer}.mlp.hook_post\"]\n",
    "            _, act = smaller_auto_encoder(neuron_act_batch)\n",
    "\n",
    "        # 3. Get the feature\n",
    "        dollar_feature_activations[start:end] = act[:, -1, feature].cpu().squeeze()\n",
    "\n",
    "    k = 20\n",
    "    k_increasing_val, k_increasing_ind = dollar_feature_activations.topk(k)\n",
    "    k_decreasing_val, k_decreasing_ind = dollar_feature_activations.topk(k, largest=False)\n",
    "    if(setting == \"prepend\"):\n",
    "        print(f\"[token]{minimal_activating_example}\")\n",
    "    elif(setting == \"append\"):\n",
    "        print(f\"{minimal_activating_example}[token]\")\n",
    "    else:\n",
    "        raise ValueError(f\"Unknown setting: {setting}\")\n",
    "    # Print indices converted to tokens\n",
    "    print(f\"Top-{k} increasing: {model.to_str_tokens(k_increasing_ind)}\")\n",
    "    # Print values\n",
    "    print(f\"Top-{k} increasing: {[f'{val:.2f}' for val in k_increasing_val]}\")\n",
    "    print(f\"Top-{k} decreasing: {model.to_str_tokens(k_decreasing_ind)}\")\n",
    "    print(f\"Top-{k} decreasing: {[f'{val:.2f}' for val in k_decreasing_val]}\")\n",
    "\n",
    "# F6\n",
    "prepend_all_tokens_and_get_feature_activation(model, \"*\", best_feature, setting=\"append\")\n",
    "# prepend_all_tokens_and_get_feature_activation(model, \"*\", best_feature, setting=\"prepend\")\n",
    "# prepend_all_tokens_and_get_feature_activation(model, \"n\", best_feature, setting=\"append\")\n",
    "# prepend_all_tokens_and_get_feature_activation(model, \"n\", best_feature, setting=\"prepend\")\n",
    "# prepend_all_tokens_and_get_feature_activation(model, \" Alice\", best_feature, setting=\"append\")\n",
    "# prepend_all_tokens_and_get_feature_activation(model, \" Alice\", best_feature, setting=\"prepend\")\n",
    "# prepend_all_tokens_and_get_feature_activation(model, \"*\", best_feature, setting=\"d\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(torch.Size([1, 1]), torch.Size([1, 3]))"
      ]
     },
     "execution_count": 159,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "token_prep.unsqueeze(0).shape, tokens.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "50304"
      ]
     },
     "execution_count": 136,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.cfg.d_vocab"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Threshold: 0.0, Neurons activated: 94\n",
      "Threshold: 0.1, Neurons activated: 39\n",
      "Threshold: 0.2, Neurons activated: 22\n",
      "Threshold: 0.3, Neurons activated: 10\n",
      "Threshold: 0.4, Neurons activated: 6\n",
      "Threshold: 0.5, Neurons activated: 3\n",
      "Threshold: 0.6, Neurons activated: 0\n",
      "Threshold: 0.7, Neurons activated: 0\n",
      "Threshold: 0.8, Neurons activated: 0\n",
      "Threshold: 0.9, Neurons activated: 0\n",
      "Threshold: 1.0, Neurons activated: 0\n"
     ]
    },
    {
     "data": {
      "image/png": "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rVYVL15cxYsXV548eTR06NA0J8cDAADwJJcPLfXr109ffPGFRo0apbp160qS1q1bp0GDBun69esaPny424sEAABIj8vXWipcuLCmTp2qli1bOrT/+OOPeuutt3TixAm3FnivuNYSAADm4+z3t8uHlhISElS+fPk07eXLl1dCQoKrTwcAAJBlLgeZqlWr6pNPPknT/sknn6hq1apuKQoAAMAZLs+RGTNmjJo3b64VK1aodu3akqRff/1Vx44d06JFi9xeIAAAQEZcHpGpX7++9u/fr+eff14XL17UxYsX1apVK+3bt0+PPfaYJ2oEAABIl0sjMjdv3tTTTz+tqVOnsjoJAAB4nUsjMn5+ftq5c6enagEAAHCJy4eW2rdvry+++MITtQAAALjE5cm+t27d0pdffqkVK1aoevXqCg4OdtjO1a8BAEB2cTnI7N69W9WqVZMk7d+/32EbV78GAADZiatfAwAA07qnq18DAAB4k8sjMg0aNMj0ENKqVavuqSAAAABnuRxkoqKiHO7fvHlTsbGx2r17tzp27OiuugAAAO7K5SAzYcKEdNsHDRqky5cv33NBAAAAznLbHJn27dvryy+/dNfTAQAA3JXbgsyvv/6qwMBAdz0dAADAXbl8aKlVq1YO9w3D0KlTp7Rlyxb179/fbYUBAADcjctBxmq1Otz38fHRgw8+qCFDhqhx48ZuKwwAAOBuXA4y06dP90QdAAAALsvSHJmLFy/q888/V9++fZWQkCBJ2rZtm06cOOHW4gAAADLj8ojMzp071bBhQ+XJk0dHjhzRa6+9pnz58umHH35QXFycZs6c6Yk6AQAA0nB5RKZXr17q3LmzDhw44LBKqVmzZlq7dq1biwMAAMiMy0Fm8+bNeuONN9K0P/DAAzp9+rRbigIAAHCGy0EmICBASUlJadr379+vggULuqUoAAAAZ7gcZFq2bKkhQ4bo5s2bkiSLxaK4uDi9//77euGFF9xeIAAAQEZcDjLjxo3T5cuXFR4ermvXrql+/foqU6aMQkNDNXz4cE/UCAAAkK4snRBv+fLlWrdunXbu3KnLly+rWrVqatSokSfqAwAAyJDFMAzD20V4UlJSkqxWqxITExUWFubtcgAAgBOc/f52eURGklauXKmVK1cqPj5eNpvNYRtXwAYAANnF5SAzePBgDRkyRDVq1FBkZKQsFosn6gIA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btw4NWvWTP3795evr698fX3173//W5MmTVJycrL8/f35knWjevXqqVixYmrQoIEGDBigsWPHqmDBglq2bJnatm2rYsWKebtE0zt69Kgee+wxSVKdOnXk5+enkydPSpImT56sDRs2yMfHhxGDexAXF6cbN27o9ddflyRZrVZFRERo3bp12rJli6xWqz799FNGz91g2rRpevLJJ+1BPC4uTrNmzVKvXr2UnJys999/3+M18NPLgtDQUN28eVMbNmywt4WEhKhly5b64IMPtG/fPv3nP//xYoX3h5SUFN24cUP16tWTv7+/fH19JUkRERFKSEjQjRs3vFzh/Sc0NFTz589XzZo11bt3bwUHB+uZZ55Rnz597BeFY87Mvbl165ZiY2M1depUhYWFad68efrtt9/0zTffKCkpSc8995wkRsHuRXBwsK5evaqvv/5at27d0tChQ/XVV1+pbNmyCg8P16pVq+xhkhCTdYZh6MiRI/L397e3FStWTO+8847GjRun/v37a/r06R6vg59gFuTOnVuPP/64VqxYoV27dtnbAwIC9I9//EMlSpTQmjVrvFfgfSIkJETDhw9Xp06dJP3fZLKIiAjlz59fISEh9l/2f/zxh7fKvK+UK1fO3s8NGzbUpUuXdOHCBdWqVUsHDhyQxBdsVqUexnj++ed17Ngx/fDDD3r00UeVP39+5c+fX7Vq1dLAgQN16NAhHT582MvVmltkZKTatm2rzz77TM2aNdOQIUM0e/ZsjRo1ShMmTNCUKVN08OBB/fzzz94u1dQsFosef/xx7dixQ3v37rW3BwcHq1OnTuratas+++wz+4ijpxBksiAgIEDvvfeetm/frmHDhjksocydO7fq16+v/fv3s7rGDSIjIyXd/hJIHZGx2WxKSkqy92+/fv3UvXt3JSYmeq3O+0WZMmUUEBCgY8eOqUOHDtqzZ4/Gjh2riIgI9erVS2vXrvV2iaaV+pf/E088oZs3b2rFihVpAktkZKRSUlIYJbhHYWFh+ve//61ffvlF//73v1W+fHk9/vjjDttDQkIUGhrqxSrvDzVq1FBoaKhiYmJ0/Phxe3vevHnVvHlz7d69W6dOnfJoDcyRyQKbzaZKlSrpxx9/VMOGDWWz2fTWW2+pQYMGkm6PDhQpUkS5ctG97nLnL/YbN27o0qVLypUrlwYOHKgxY8bo119/ldVq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S5fqoYceUkhIiJ5++mmH8GWz2TRkyBAVKVJEAQEBioqK0pIlSzJ9z4sWLVK5cuUUFBSkBg0a6MiRI/fShQDcgCADwOP69euncePGacuWLcqVK5eio6Mdth88eFDff/+9fvjhB/uclNatWys+Pl6LFy/W1q1bVa1aNTVs2FAJCQmSpJdffllFihTR5s2btXXrVvXp00d+fn7257x69arGjh2rr776SmvXrlVcXJzee+89+/aPPvpI48aN09ixY7Vz5041adJELVu21IEDB9J9D8eOHVOrVq3UokULxcbGqkuXLurTp4+bewqAywwAuEfTp083rFZrmvbVq1cbkowVK1bY2xYuXGhIMq5du2YYhmEMHDjQ8PPzM+Lj4+37/PLLL0ZYWJhx/fp1h+crXbq08Z///McwDMMIDQ01YmJiMqxHknHw4EF72+TJk41ChQrZ7xcuXNgYPny4w+MeeeQR46233jIMwzAOHz5sSDK2b99uGIZh9O3b16hQoYLD/u+//74hybhw4UK6dQDwPEZkAHhclSpV7P+OjIyUJMXHx9vbihcvroIFC9rv79ixQ5cvX1b+/PkVEhJivx0+fFiHDh2SJPXq1UtdunRRo0aNNGrUKHt7qty5c6t06dIOr5v6mklJSTp58qTq1q3r8Ji6detq79696b6HvXv3qlatWg5ttWvXdroPAHgGk30BeNydh3xSr5xrs9nsbcHBwQ77X758WZGRkVqzZk2a50pdVj1o0CC99NJLWrhwoRYvXqyBAwfqu+++0/PPP5/mNVNf1zAMd7wdADkIIzIAcpxq1arp9OnTypUrl8qUKeNwK1CggH2/cuXKqWfPnlq2bJlatWql6dOnO/X8YWFhKly4sNavX+/Qvn79elWoUCHdxzz00EPatGmTQ9vGjRtdfGcA3I0gAyDHadSokWrXrq3nnntOy5Yt05EjR7Rhwwb169dPW7Zs0bVr1/T2229rzZo1Onr0qNavX6/NmzfroYcecvo1evfurdGjR2v27Nnat2+f+vTpo9jYWHXv3j3d/f/5z3/qwIED6t27t/bt26dZs2YpJibGTe8YQFZxaAlAjmOxWLRo0SL169dPnTt31tmzZxUREaHHH39chQoVkq+vr86fP68OHTrozJkzKlCggFq1aqXBgwc7/RrdunVTYmKi3n33XcXHx6tChQqaP3++ypYtm+7+xYoV0/fff6+ePXtq0qRJqlmzpkaMGJFmBRaA7GUxOGgMAABMikNLAADAtAgyAADAtAgyAADAtAgyAADAtAgyAADAtAgyAADAtAgyAADAtAgyAADAtAgyAADAtAgyAADAtAgyAADAtP4fBtsq0bPPgMAAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Neurons that fire for this feature\n",
    "# Find corresponding neurons activations between pythia & autoencoder\n",
    "# Get the activations for the best dict features\n",
    "len_threshold = 11\n",
    "thresholds = [round(0.1*x,1) for x in range(len_threshold)]\n",
    "current_activated_neurons = np.zeros(len_threshold)\n",
    "for idx, threshold in enumerate(thresholds):\n",
    "    best_feature_activations = dictionary_activations[:, best_feature]\n",
    "    # Sort the features by activation, get the indices\n",
    "    nonzero_indices = torch.argsort(best_feature_activations, descending=True)\n",
    "    sorted_indices = nonzero_indices[:10]\n",
    "    t = (neuron_activations[sorted_indices, :] > threshold)\n",
    "    # And across the first dim)\n",
    "    t = t.all(dim=0)\n",
    "    neurons_activated = t.sum()\n",
    "    current_activated_neurons[idx] = neurons_activated\n",
    "    print(f\"Threshold: {threshold}, Neurons activated: {neurons_activated}\")\n",
    "# Plot boxplot w/ plotly\n",
    "plt.scatter(thresholds, current_activated_neurons)\n",
    "plt.xticks(rotation=45)\n",
    "plt.xlabel(\"Threshold\")\n",
    "plt.ylabel(\"Number of neurons activated\")\n",
    "plt.title(\"Features/Neurons activated\")\n",
    "plt.ylim(0, 10)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Feature 0: ['ocompat', 'lated', '��', 'liest', 'atically', '://', 'pired', 'ky', 'alin', '----']\n",
      "Feature 1: ['soever', ' aside', ' sight', ' pigment', 'ably', ' forth', ' viewed', ' McKin', ' Cotton', 'pieces']\n",
      "Feature 2: ['soever', 'mente', 'raction', 'zer', 'burn', 'lessly', 'eries', 'ce', 'zig', 'edly']\n",
      "Feature 3: ['hood', 'edly', 'atsu', ' Field', ' teeth', 'EVER', ' sheets', 'uma', 'aster', 'ess']\n",
      "Feature 4: ['ftware', ' difference', ' limits', '://', ' applicability', 'cludes', ' disadvantage', 'ffect', ' differences', ' inconvenience']\n",
      "Feature 5: [' Funding', 'yer', 'ucc', ' Correspond', ' Wrote', 'hill', 'emit', ' Below', ' illustrating', 'zzi']\n",
      "Feature 6: ['\"}](#', 'iator', 'theless', 'confidence', ' doubt', 'red', ' contrast', 'ordo', 'íc', 'reement']\n",
      "Feature 7: [' \\n           ', '\\n                                      ', '                                                                                                                                                                                                ', '\\n                   ', '\\n\\n     ', '', '\\n\\n\\n       ', '                                                           ', ' \\n       ', '                                        ']\n",
      "Feature 8: [' junctions', ' hospitals', ' checkpoint', ' tunnels', ' tanks', ' caves', ' matrices', ' galleries', ' questions', ' factories']\n",
      "Feature 9: ['azer', '*/', 'ater', 'ios', '�', 'city', 'ighter', 'vie', 'íc', 'wic']\n"
     ]
    }
   ],
   "source": [
    "# Logit lens\n",
    "# Multiply feature direction by W_out[layer]\n",
    "# Then by W_U\n",
    "for n in range(10):\n",
    "    best_feature = max_indices[n]\n",
    "    with torch.no_grad():\n",
    "        feature_direction = smaller_dict[best_feature].to(device)\n",
    "        residual_direction = torch.matmul(feature_direction, model.W_out[layer]) # Add bias\n",
    "        # residual_direction = model.ln_final(residual_direction)\n",
    "        logits = torch.matmul(residual_direction, model.W_U).cpu()\n",
    "    topk_values, topk_indices = torch.topk(logits, 10)\n",
    "    top_text = model.to_str_tokens(topk_indices)\n",
    "    print(f\"Feature {n}: {top_text}\")\n",
    "# print(topk_values)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([60, 50304]) torch.Size([60])\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div id=\"circuits-vis-184b4707-338b\" style=\"margin: 15px 0;\"/>\n",
       "    <script crossorigin type=\"module\">\n",
       "    import { render, TokenLogProbs } from \"https://unpkg.com/circuitsvis@1.40.0/dist/cdn/esm.js\";\n",
       "    render(\n",
       "      \"circuits-vis-184b4707-338b\",\n",
       "      TokenLogProbs,\n",
       "      {\"prompt\": [\" \", \"\\n\", \"#\", \"\\n\", \"\\n\", \"###\", \" Copyright\", \"\\n\", \"\\n\", \"4\", \"th\", \" Estate\", \"\\n\", \"\\n\", \"An\", \" imprint\", \" of\", \" Harper\", \"Collins\", \" _\", \"Publ\", \"ishers\", \"_\", \"\\n\", \"\\n\", \"1\", \" London\", \" Bridge\", \" Street\", \"\\n\", \"\\n\", \"London\", \" SE\", \"1\", \" 9\", \"GF\", \"\\n\", \"\\n\", \"www\", \".\", \"4\", \"th\", \"E\", \"state\", \".\", \"co\", \".\", \"uk\", \"\\n\", \"\\n\", \"This\", \" e\", \"Book\", \" first\", \" published\", \" in\", \" Great\", \" Britain\", \" by\", \" 4\"], \"topKLogProbs\": [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0107421875, 0.010582923889160156, 0.010311126708984375, 0.01015472412109375, 0.010068893432617188, 0.009462356567382812, 0.009370803833007812, 0.009363174438476562, 0.009203910827636719, 0.009124755859375], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0077686309814453125, 0.007450103759765625, 0.00727081298828125, 0.0071048736572265625, 0.007030487060546875, 0.0066680908203125, 0.0066509246826171875, 0.006543159484863281, 0.0065326690673828125, 0.0064716339111328125], [0.008235931396484375, 0.00799560546875, 0.007854461669921875, 0.007569313049316406, 0.0075664520263671875, 0.00739288330078125, 0.0073337554931640625, 0.007076263427734375, 0.0070056915283203125, 0.0069370269775390625], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.010057449340820312, 0.009860038757324219, 0.009463310241699219, 0.009398460388183594, 0.009272575378417969, 0.008971214294433594, 0.008882522583007812, 0.008732795715332031, 0.008630752563476562, 0.008574485778808594], [0.009546279907226562, 0.009340286254882812, 0.009002685546875, 0.008901596069335938, 0.008867263793945312, 0.008848190307617188, 0.008699417114257812, 0.008697509765625, 0.008665084838867188, 0.0085601806640625], [0.01105499267578125, 0.010759353637695312, 0.010164260864257812, 0.010103225708007812, 0.010065078735351562, 0.010028839111328125, 0.010009765625, 0.009918212890625, 0.009840011596679688, 0.009775161743164062], [0.0032958984375, 0.0025634765625, 0.0025634765625, 0.0020751953125, 0.0020751953125, 0.0020751953125, 0.0020751953125, 0.0020751953125, 0.0020751953125, 0.0020751953125], [0.00048828125, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625], [0.013528823852539062, 0.013074874877929688, 0.012302398681640625, 0.0121917724609375, 0.011608123779296875, 0.0114898681640625, 0.011219024658203125, 0.0111083984375, 0.011064529418945312, 0.010812759399414062], [0.0040283203125, 0.0035400390625, 0.003173828125, 0.0030517578125, 0.0030517578125, 0.0030517578125, 0.0030517578125, 0.0030517578125, 0.0030517578125, 0.0029296875], [0.002277374267578125, 0.001895904541015625, 0.001800537109375, 0.001773834228515625, 0.00176239013671875, 0.001705169677734375, 0.00164031982421875, 0.001628875732421875, 0.0016193389892578125, 0.0016193389892578125], [0.0008544921875, 0.0008544921875, 0.000732421875, 0.000732421875, 0.000732421875, 0.000732421875, 0.000732421875, 0.000732421875, 0.000732421875, 0.000732421875], [1.52587890625e-05, 7.62939453125e-06, 3.814697265625e-06, 3.814697265625e-06, 3.814697265625e-06, 3.814697265625e-06, 3.814697265625e-06, 3.814697265625e-06, 3.814697265625e-06, 3.814697265625e-06], [0.0016803741455078125, 0.0016002655029296875, 0.0015277862548828125, 0.001461029052734375, 0.001445770263671875, 0.0014362335205078125, 0.0014133453369140625, 0.001392364501953125, 0.001377105712890625, 0.0013675689697265625], [0.0020751953125, 0.001873016357421875, 0.0018529891967773438, 0.0018482208251953125, 0.0018100738525390625, 0.0017871856689453125, 0.00176239013671875, 0.0017385482788085938, 0.001728057861328125, 0.0016384124755859375], [0.01659393310546875, 0.015913009643554688, 0.015857696533203125, 0.014822006225585938, 0.014492034912109375, 0.014146804809570312, 0.014139175415039062, 0.013967514038085938, 0.0137939453125, 0.013780593872070312], [0.001220703125, 0.001220703125, 0.001220703125, 0.001220703125, 0.0010986328125, 0.0010986328125, 0.0010986328125, 0.0010986328125, 0.0010986328125, 0.0010986328125], [0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625], [0.000244140625, 0.0001220703125, 0.0001220703125, 0.0001220703125, 0.0001220703125, 0.0001220703125, 0.0001220703125, 0.0001220703125, 0.0001220703125, 0.0001220703125], [0.00048828125, 0.00048828125, 0.00048828125, 0.00048828125, 0.00048828125, 0.00048828125, 0.00048828125, 0.00048828125, 0.00048828125, 0.00048828125], [0.0003662109375, 0.0003662109375, 0.0003662109375, 0.0003662109375, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625], [0.02268218994140625, 0.022504806518554688, 0.02158355712890625, 0.021305084228515625, 0.021181106567382812, 0.020244598388671875, 0.020151138305664062, 0.019611358642578125, 0.019556045532226562, 0.01946258544921875], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0001220703125, 0.0001220703125, 0.0001220703125, 0.0001220703125, 0.0001220703125, 0.0001220703125, 0.0001220703125, 7.62939453125e-06, 7.62939453125e-06, 7.62939453125e-06], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.000244140625, 0.0001220703125, 0.0001220703125, 0.0001220703125, 0.0001220703125, 0.0001220703125, 0.0001220703125, 0.0001220703125, 0.0001220703125, 0.0001220703125], [0.05419921875, 0.03857421875, 0.0380859375, 0.03787994384765625, 0.0374755859375, 0.03716087341308594, 0.0369873046875, 0.03671073913574219, 0.036376953125, 0.0360107421875], [0.0003662109375, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625, 0.000244140625], [1.4539546966552734, 1.219289779663086, 1.0462360382080078, 1.0408248901367188, 0.9406108856201172, 0.923919677734375, 0.9093189239501953, 0.8944816589355469, 0.8924999237060547, 0.8852920532226562], [2.4973831176757812, 2.4648523330688477, 2.2300643920898438, 2.162282943725586, 2.116241455078125, 2.0768089294433594, 2.073711395263672, 2.070201873779297, 2.061138153076172, 2.0470733642578125], [2.69866943359375, 2.6404781341552734, 2.4886398315429688, 2.4204463958740234, 2.408733367919922, 2.4036521911621094, 2.3780651092529297, 2.3751564025878906, 2.3748550415039062, 2.3473644256591797], [1.6838626861572266, 1.6481704711914062, 1.6264095306396484, 1.6254463195800781, 1.5952301025390625, 1.5828323364257812, 1.5725860595703125, 1.5554065704345703, 1.5418529510498047, 1.5217952728271484], [1.4675712585449219, 1.436187744140625, 1.4177894592285156, 1.3877601623535156, 1.3719329833984375, 1.364297866821289, 1.351318359375, 1.3474903106689453, 1.3249568939208984, 1.3106346130371094], [1.1652107238769531, 1.01116943359375, 1.0035686492919922, 0.99493408203125, 0.9920654296875, 0.9789638519287109, 0.9667091369628906, 0.9600353240966797, 0.9541244506835938, 0.9486293792724609], [1.3295516967773438, 1.32940673828125, 1.2976531982421875, 1.1491222381591797, 1.148040771484375, 1.1169195175170898, 1.1042718887329102, 1.1040430068969727, 1.097686767578125, 1.077932357788086], [0.8067626953125, 0.5949172973632812, 0.5928096771240234, 0.57373046875, 0.5640869140625, 0.54833984375, 0.5447616577148438, 0.5289306640625, 0.5207672119140625, 0.5142822265625], [0.9349365234375, 0.93310546875, 0.8961181640625, 0.84814453125, 0.834228515625, 0.832275390625, 0.817626953125, 0.7822265625, 0.778076171875, 0.7705078125], [0.6346225738525391, 0.618626594543457, 0.6118288040161133, 0.5662317276000977, 0.5478076934814453, 0.5475940704345703, 0.535639762878418, 0.5323762893676758, 0.5162677764892578, 0.5155086517333984], [0.3973970413208008, 0.39628028869628906, 0.3803253173828125, 0.3783531188964844, 0.3758544921875, 0.3690929412841797, 0.36467742919921875, 0.36043357849121094, 0.36025238037109375, 0.3582496643066406], [0.4769001007080078, 0.4306640625, 0.4194622039794922, 0.4064769744873047, 0.39839935302734375, 0.3910865783691406, 0.38325023651123047, 0.37676143646240234, 0.36939430236816406, 0.3626070022583008], [0.08523368835449219, 0.08432960510253906, 0.08161258697509766, 0.08034610748291016, 0.07822036743164062, 0.07761573791503906, 0.0775747299194336, 0.0771484375, 0.07656097412109375, 0.07649803161621094], [0.052001953125, 0.052001953125, 0.052001953125, 0.052001953125, 0.0518798828125, 0.0518798828125, 0.0518798828125, 0.0518798828125, 0.0518798828125, 0.0518798828125], [0.04736328125, 0.044921875, 0.0423583984375, 0.0400390625, 0.039306640625, 0.0391845703125, 0.038818359375, 0.038330078125, 0.0380859375, 0.0377197265625], [0.0189208984375, 0.017930984497070312, 0.017822265625, 0.017333984375, 0.017047882080078125, 0.016962051391601562, 0.016845703125, 0.0167236328125, 0.0162353515625, 0.015649795532226562], [0.29987144470214844, 0.29856300354003906, 0.2978935241699219, 0.2812538146972656, 0.2782001495361328, 0.2603569030761719, 0.25891876220703125, 0.25800514221191406, 0.2518043518066406, 0.2498779296875], [0.09412288665771484, 0.08315372467041016, 0.08309650421142578, 0.08153343200683594, 0.07893943786621094, 0.07780265808105469, 0.07676506042480469, 0.0765829086303711, 0.07594966888427734, 0.07590198516845703], [0.03208351135253906, 0.03187751770019531, 0.031383514404296875, 0.030492782592773438, 0.03035259246826172, 0.030107498168945312, 0.0297088623046875, 0.028779983520507812, 0.028741836547851562, 0.0286712646484375], [0.0583648681640625, 0.05835437774658203, 0.054233551025390625, 0.053989410400390625, 0.05374336242675781, 0.0524139404296875, 0.05230903625488281, 0.051601409912109375, 0.050253868103027344, 0.04993629455566406], [0.041538238525390625, 0.040019989013671875, 0.03508758544921875, 0.03449821472167969, 0.03342723846435547, 0.0322723388671875, 0.03179740905761719, 0.03172492980957031, 0.031105995178222656, 0.03103923797607422]], \"topKTokens\": [[\"'\", \"(\", \"#\", \"&\", \"$\", \"\\\"\", \"<|padding|>\", \"<|endoftext|>\", \"!\", \"%\"], [\"'\", \"(\", \"#\", \"&\", \"$\", \"\\\"\", \"<|padding|>\", \"<|endoftext|>\", \"!\", \"%\"], [\"ograp\", \" glycerol\", \" Arch\", \" Kris\", \"ographs\", \" ep\", \"atican\", \"cat\", \"oy\", \" pant\"], [\"'\", \"(\", \"#\", \"&\", \"$\", \"\\\"\", \"<|padding|>\", \"<|endoftext|>\", \"!\", \"%\"], [\"'\", \"(\", \"#\", \"&\", \"$\", \"\\\"\", \"<|padding|>\", \"<|endoftext|>\", \"!\", \"%\"], [\"ograp\", \" glycerol\", \"ographs\", \" Arch\", \" Kris\", \"atican\", \"cat\", \" ep\", \"oy\", \" pant\"], [\"ograp\", \" glycerol\", \" Arch\", \" Kris\", \"ographs\", \"cat\", \"atican\", \" ep\", \" pant\", \"oy\"], [\"'\", \"(\", \"#\", \"&\", \"$\", \"\\\"\", \"<|padding|>\", \"<|endoftext|>\", \"!\", \"%\"], [\"'\", \"(\", \"#\", \"&\", \"$\", \"\\\"\", \"<|padding|>\", \"<|endoftext|>\", \"!\", \"%\"], [\"'\", \"(\", \"#\", \"&\", \"$\", \"\\\"\", \"<|padding|>\", \"<|endoftext|>\", \"!\", \"%\"], [\"'\", \"(\", \"#\", \"&\", \"$\", \"\\\"\", \"<|padding|>\", \"<|endoftext|>\", \"!\", \"%\"], [\"ograp\", \" glycerol\", \" Arch\", \" Kris\", \"ographs\", \"cat\", \"atican\", \" ep\", \" pant\", \"oy\"], [\" narratives\", \" rape\", \" records\", \" homicide\", \" Sgt\", \" detectives\", \" Freud\", \" fantasies\", \" beliefs\", \" autopsy\"], [\" narratives\", \" homicide\", \" sergeant\", \" autopsy\", \" myths\", \" rape\", \" records\", \" Sgt\", \" Freud\", \" trauma\"], [\"\\ufffd\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\"], [\"\\n              \", \"\\ufffd\", \"<|padding|>\", \"\\ufffd\", \"<|endoftext|>\", \"\\ufffd\", \"                                \", \"\\ufffd\", \"\\n        \", \"\\ufffd\"], [\" serialized\", \" records\", \" myths\", \" narratives\", \" strata\", \" beliefs\", \" loosely\", \"\\ufffd\", \" confidentiality\", \" conceal\"], [\"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\\ufffd\", \"\\ufffd\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\"], [\" apart\", \"WN\", \" same\", \"aused\", \" aside\", \"asty\", \" quo\", \"uppose\", \"inian\", \"istle\"], [\"\\n                                          \", \"\\n                        \", \"                \", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\n             \", \"\\n\\n     \", \"\\ufffd\", \" \\n   \"], [\"\\u0c3f\", \"\\u1010\", \"ensional\", \"sqrt\", \"\\u0019\", \"enance\", \"opp\", \" mathemat\", \" polit\", \" hospit\"], [\" dispute\", \" disputes\", \" liable\", \" precise\", \" advis\", \" conversation\", \" remains\", \" existence\", \" tale\", \" accession\"], [\"\\ufffd\", \"\\r\\n\\t\\t\\t\\t\", \" Records\", \" Sheet\", \"serialize\", \"istle\", \"helf\", \" records\", \"uffle\", \"acrylate\"], [\"cloth\", \"ets\", \" Psychological\", \"ettes\", \"atization\", \"quo\", \"ographic\", \"ases\", \"\\ufffd\", \"lei\"], [\"\", \"\", \"                      \", \"\\n\\n      \", \"\\n                                                                                                                                                                                                                                                                \", \"\\n                                             \", \"\\n                          \", \"\\r\\n\\r\\n   \", \"                            \", \"\\n  \"], [\"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\n                   \", \"\\n             \", \"                     \", \"\\ufffd\", \"\\ufffd\"], [\"                \", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\"], [\"                  \", \"\\r\\n       \", \" \\n       \", \"                                             \", \"\\n\\n           \", \"\\r\\n\\r\\n   \", \"\\n                      \", \"\\n                        \", \"\\r\\n           \", \"         \"], [\"\\n\\n\\n     \", \"\\n\\t\\t   \", \"                                          \", \"\\n                  \", \"\\n                                    \", \"                                                         \", \"\\n  \\u00a0\\u00a0\\u00a0\", \"                                                          \", \"\\n                      \", \"\\r\\n         \"], [\"ograp\", \" glycerol\", \" Kris\", \" Arch\", \"ographs\", \"atype\", \"atican\", \" pant\", \" ep\", \"cat\"], [\"'\", \"(\", \"#\", \"&\", \"$\", \"\\\"\", \"<|padding|>\", \"<|endoftext|>\", \"!\", \"%\"], [\"\\n\\n              \", \"\\n                                      \", \"\", \"\\ufffd\\ufffd\", \"\\n                                   \", \"\", \"                                         \", \"\\u103a\", \"\\ufffd\", \"\\u0bcd\"], [\"'\", \"(\", \"#\", \"&\", \"$\", \"\\\"\", \"<|padding|>\", \"<|endoftext|>\", \"!\", \"%\"], [\"'\", \"(\", \"#\", \"&\", \"$\", \"\\\"\", \"<|padding|>\", \"<|endoftext|>\", \"!\", \"%\"], [\"'\", \"(\", \"#\", \"&\", \"$\", \"\\\"\", \"<|padding|>\", \"<|endoftext|>\", \"!\", \"%\"], [\" \\n         \", \"\\n\\t   \", \"                       \", \"\\n\\n       \", \"              \", \"\\n\\n      \", \"                                                 \", \"\\ufffd\", \"FFIRMED\", \"\\n    \"], [\"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"Docket\", \"\\ufffd\", \"ozo\", \"\\ufffd\", \"iking\", \"\\ufffd\", \"\\ufffd\"], [\"\\n                                    \", \"\\n    \", \"\\r\\n   \", \"\\n           \", \" \\n               \", \"                   \", \"\\r\\n       \", \"\\ufffd\", \"\\r\\n     \", \"\\ufffd\"], [\"ttes\", \"ocene\", \"uesday\", \"thood\", \"ukin\", \"odge\", \"obacterium\", \"taire\", \"tait\", \"armac\"], [\"\\u0d4d\", \"ocr\", \"\\ufffd\", \"achy\", \"\\u0abe\", \"acic\", \"ocardial\", \"itus\", \"\\u0430\\u0431\\u043e\\u0442\", \"\\u0c4d\"], [\"izumab\", \"xico\", \"zerba\", \"ipolar\", \"obacterium\", \"umab\", \"asive\", \"ikov\", \"itan\", \"olu\"], [\"ndt\", \"\\u0435\\ufffd\", \"zerba\", \"CHO\", \"apk\", \"gran\", \"RESULTS\", \"zona\", \"\\u0642\", \"mental\"], [\"tml\", \"doibase\", \"apk\", \"\\r\\n\\r\\n \", \"InstanceState\", \"nlm\", \"dorff\", \"unnumbered\", \"ahoma\", \"apine\"], [\"medscimonit\", \"fefefe\", \"ndt\", \"medsc\", \"cient\", \"creas\", \"uren\", \"ublin\", \"oprecip\", \"urations\"], [\"eller\", \"vat\", \"omen\", \"v\", \"thirds\", \"ld\", \"lin\", \"onto\", \"obe\", \"cen\"], [\"\\ufffd\\ufffd\", \"veis\", \"icos\", \"\\ufffd\", \"\\ufffd\\ufffd\", \"\\ufffd\", \"jcmm\", \"\\ufffd\", \">{\", \"\\ufffd\"], [\"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\"], [\"Docket\", \"?\", \"/>\", \">;\", \"}=\\\\\", \"\\\"?\", \"????\", \"```\", \"'?\", \"}}=\\\\\"], [\":\", \" faults\", \"^--\", \" vez\", \" facie\", \"wer\", \"inia\", \"hum\", \" protest\", \" administr\"], [\"imony\", \"\\ufffd\", \" Commonwealth\", \"unction\", \"ivalent\", \"://\", \"---|---\", \"vt\", \"ollow\", \"---|---|---\"], [\"?\", \"Closed\", \" Nottingham\", \" Wales\", \" QC\", \"Correct\", \" NSW\", \" Wrote\", \" Dep\", \"Equal\"], [\"\\n                    \", \"            \", \"\", \"                                    \", \"\\n\\n             \", \"\\n                                       \", \"\\r\\n    \", \"                  \", \"                                                                             \", \"                                   \"], [\"\\ufffd\\ufffd\", \"\\ufffd\", \"\\ufffd\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\"], [\"\\ufffd\", \"\\u2003\", \"\\ufffd\", \"\\ufffd\", \"`)\", \"aused\", \"\\ufffd\", \"\\ufffd\\ufffd\", \"\\ufffd\", \"ahi\"], [\"blown\", \"4\", \" Fourth\", \"Fourth\", \"weed\", \"0004\", \" blown\", \"extend\", \"fourth\", \"\\ufffd\\ufffd\"], [\"\\n\\n\\t\", \" Nam\", \" Jordan\", \"unnumbered\", \" Sql\", \" Zend\", \" Romanian\", \" Rio\", \" Pont\", \" WP\"], [\"wers\", \" Baltic\", \"scriptions\", \" Tribunal\", \" Eston\", \"ructions\", \"rias\", \" Viking\", \" whist\", \" injustice\"], [\"\\\\].\", \"*.\", \" MHz\", \"\\\"?\", \"pshire\", \"wl\", \" Comments\", \"unnumbered\", \"^.\", \".*;\"], [\"\\r\\n\", \" Wales\", \" Nottingham\", \"shire\", \" Derby\", \" Speech\", \"\\r\", \"\\r\\n\\r\\n\", \"\\u2011\", \" Borough\"]], \"correctTokenRank\": [33470, 33533, 17364, 33470, 37401, 45295, 21178, 33470, 33550, 33137, 43204, 20185, 21799, 13488, 276, 7963, 25822, 747, 3731, 314, 47928, 23259, 13668, 22307, 10651, 36927, 48566, 4627, 34317, 29850, 39821, 34745, 33547, 34230, 37640, 39996, 9185, 38690, 356, 25205, 49963, 33615, 37994, 38340, 7509, 12099, 351, 1742, 42565, 21459, 8072, 13975, 21770, 7585, 30886, 22077, 31598, 32547, 10071], \"correctTokenLogProb\": [0.0, 0.0, 0.0021376609802246094, 0.0, 0.0, -0.0018677711486816406, 0.00025725364685058594, 0.0, 0.0, 0.0, 0.0, 0.0006210803985595703, -8.746981620788574e-05, 0.0006351470947265625, 0.001310110092163086, 5.438923835754395e-07, -0.001544952392578125, 5.8144330978393555e-05, 0.0007262229919433594, 2.333521842956543e-05, 0.0, 0.00018668174743652344, 0.0001118779182434082, 3.727152943611145e-06, 1.0013580322265625e-05, -2.384185791015625e-06, -1.3113021850585938e-06, 1.7881393432617188e-06, -3.7670135498046875e-05, 2.1365471184253693e-05, 0.0, 0.0, 0.0, 0.0, 0.0, -1.7881393432617188e-06, 1.1236406862735748e-05, -3.159046173095703e-06, 0.02395862154662609, 0.1897602081298828, -0.12377414107322693, 0.25179290771484375, 0.15999984741210938, -0.02087407559156418, 0.20920872688293457, 0.00017459248192608356, 0.00017534918151795864, 0.06435251235961914, -0.0009538084268569946, -0.05650472640991211, 0.01739811897277832, -0.005616903305053711, 0.002338409423828125, 0.005093574523925781, -0.008401632308959961, 0.006249427795410156, -0.00022796913981437683, -0.0024721622467041016, 0.0031032562255859375]}\n",
       "    )\n",
       "    </script>"
      ],
      "text/plain": [
       "<circuitsvis.utils.render.RenderedHTML at 0x7fab23b000a0>"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import circuitsvis\n",
    "text = full_text\n",
    "features = best_feature\n",
    "\n",
    "if features==None:\n",
    "    features = torch.tensor([best_feature])\n",
    "if isinstance(features, int):\n",
    "    features = torch.tensor([features])\n",
    "if isinstance(features, list):\n",
    "    features = torch.tensor(features)\n",
    "if isinstance(text, str):\n",
    "    text = [text]\n",
    "text_list = []\n",
    "logit_list = []\n",
    "for t in text:\n",
    "    tokens = model.to_tokens(t, prepend_bos=False)\n",
    "    with torch.no_grad():\n",
    "        original_logits = model(tokens).log_softmax(-1).cpu()\n",
    "        ablated_logits = ablate_feature_direction(tokens, features, model, smaller_auto_encoder).log_softmax(-1).cpu()\n",
    "    # diff_logits = ablated_logits  - original_logits# ablated > original -> negative diff\n",
    "    diff_logits =   original_logits - ablated_logits# ablated > original -> negative diff\n",
    "    tokens = tokens.cpu()\n",
    "    split_text = model.to_str_tokens(t, prepend_bos=False)\n",
    "    gather_tokens = rearrange(tokens[:,1:], \"b s -> b s 1\") # TODO: verify this is correct\n",
    "    # Gather the logits for the true tokens\n",
    "    true_log_probs = rearrange(diff_logits[:, :-1].gather(-1,gather_tokens), \"b s n -> (b s n)\")\n",
    "    break\n",
    "# Add an extra dim for the batch\n",
    "diff_logits = diff_logits[0]\n",
    "tokens = tokens[0]\n",
    "print(diff_logits.shape, tokens.shape)\n",
    "# circuitsvis.logits.token_log_probs(token_indices=tokens, top_k=10, log_probs=original_logits, to_string=model.to_single_str_token)\n",
    "circuitsvis.logits.token_log_probs(token_indices=tokens, top_k=10, log_probs=diff_logits, to_string=model.to_single_str_token)\n",
    "# circuitsvis.logits.token_log_probs(token_indices=tokens, top_k=10, log_probs=ablated_logits, to_string=model.to_single_str_token)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "ename": "TypeError",
     "evalue": "token_log_probs() missing 3 required positional arguments: 'token_indices', 'log_probs', and 'to_string'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
      "Cell \u001b[0;32mIn[47], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m circuitsvis\u001b[39m.\u001b[39;49mlogits\u001b[39m.\u001b[39;49mtoken_log_probs()\n",
      "\u001b[0;31mTypeError\u001b[0m: token_log_probs() missing 3 required positional arguments: 'token_indices', 'log_probs', and 'to_string'"
     ]
    }
   ],
   "source": [
    "circuitsvis.logits.token_log_probs(token_indices=)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div id=\"circuits-vis-967c7055-fcf0\" style=\"margin: 15px 0;\"/>\n",
       "    <script crossorigin type=\"module\">\n",
       "    import { render, TextNeuronActivations } from \"https://unpkg.com/circuitsvis@1.40.0/dist/cdn/esm.js\";\n",
       "    render(\n",
       "      \"circuits-vis-967c7055-fcf0\",\n",
       "      TextNeuronActivations,\n",
       "      {\"tokens\": [\":\", \"\\\\newline\", \"\\\\newline\", \"How\", \" important\", \" are\", \" Design\", \" Pattern\", \"s\", \" really\", \"?\", \"\\\\newline\", \"\\\\newline\", \"How\", \" important\", \" are\", \" Design\", \" Pattern\", \"s\", \" really\", \"?\", \"  \", \"\\\\newline\", \"I\", \" think\", \" the\", \" earlier\", \" generation\", \" of\", \" programmers\", \" didn\", \"'t\", \" use\", \" Design\", \" Pattern\", \"s\", \" that\", \" much\", \" (\", \"people\", \" who\", \" graduated\", \" in\", \" the\", \" 80\", \"s\", \" and\", \" before\", \" mid\", \" 90\", \"s\", \").\", \"  \", \"Do\", \" the\", \" recent\", \" graduate\", \" know\", \" it\", \"\\n\", \":\", \"\\\\newline\", \"\\\\newline\", \"How\", \" to\", \" load\", \" a\", \" partial\", \" view\", \" in\", \" a\", \" new\", \" window\", \"?\", \"\\\\newline\", \"\\\\newline\", \"I\", \" have\", \" an\", \" MVC\", \" partial\", \" view\", \".\", \" I\", \" try\", \" to\", \" load\", \" it\", \" using\", \" window\", \".\", \"open\", \" by\", \" calling\", \" the\", \" controller\", \" name\", \" and\", \" the\", \" action\", \" name\", \".\", \" I\", \" got\", \" from\", \" the\", \" action\", \" the\", \" related\", \" partial\", \" view\", \" back\", \" but\", \" there\", \" are\", \" no\", \" links\", \" to\", \" styles\", \"\\n\", \"ahoo\", \"!\", \" Thank\", \" you\", \" to\", \" my\", \" awesome\", \" friend\", \" J\", \"T\", \" for\", \" this\", \" shot\", \" of\", \" my\", \" Super\", \"girl\", \"!\", \" Taken\", \" at\", \" Meg\", \"ca\", \"on\", \" 2015\", \" in\", \" Orlando\", \"!!\", \"I\", \" always\", \" wanted\", \" to\", \" bring\", \" this\", \" cos\", \"play\", \" to\", \" Meg\", \"acon\", \",\", \" I\", \"'m\", \" so\", \" glad\", \" I\", \" finally\", \" did\", \"!!\", \"Photo\", \" by\", \" Tiger\", \" Shot\", \" Productions\", \" www\", \".\", \"facebook\", \".\", \"com\", \"/\", \"tig\", \"\\n\", \"\\ufffd\", \"12\", \"\\u6708\", \"7\", \"\\u65e5\", \" AFP\", \"\\ufffd\", \"\\ufffd\", \"\\u30d6\", \"\\u30e9\", \"\\u30b8\", \"\\u30eb\", \"\\u306f\", \"\\u3053\\u308c\", \"\\u307e\", \"\\u3067\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\u30a8\", \"\\ufffd\", \"\\ufffd\", \"\\u30eb\", \"\\ufffd\", \"\\ufffd\", \"\\u30fc\", \"\\u6d3b\", \"\\u7528\", \"\\ufffd\", \"\\ufffd\", \"\\u306e\", \"\\ufffd\", \"\\ufffd\", \"\\u884c\", \"\\u306b\", \"\\u304a\", \"\\u3044\\u3066\", \"\\u5927\", \"\\u304d\", \"\\u304f\", \"\\u5f8c\", \"\\u308c\", \"\\u3092\", \"\\u53d6\", \"\\u3063\\u3066\", \"\\u304d\", \"\\u305f\", \"\\u304c\", \"\\u3001\", \"\\u73fe\", \"\\u5728\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\u90e8\", \"\\u306b\", \"\\u5efa\", \"\\n\", \":\", \"\\\\newline\", \"\\\\newline\", \"How\", \" does\", \" Le\", \"ia\", \" Organ\", \"a\", \" know\", \" carbon\", \" freezing\", \" causes\", \" h\", \"ib\", \"ern\", \"ation\", \" sickness\", \"?\", \"\\\\newline\", \"\\\\newline\", \"In\", \" the\", \" Star\", \" Wars\", \" universe\", \",\", \" there\", \" exists\", \" a\", \" carbon\", \" freezing\", \" process\", \" that\", \" has\", \" been\", \" used\", \" before\", \" to\", \" transport\", \" frozen\", \" gas\", \" over\", \" long\", \" distances\", \".\", \"  \", \"In\", \" Cloud\", \" City\", \",\", \" the\", \" carbon\", \" freezing\", \" process\", \" is\", \" used\", \" for\", \" the\", \"\\n\", \":\", \"\\\\newline\", \"\\\\newline\", \"When\", \" are\", \" the\", \" carry\", \" flags\", \" set\", \"?\", \"\\\\newline\", \"\\\\newline\", \"What\", \" is\", \" meant\", \" by\", \" \\\"\", \"App\", \"lying\", \" the\", \" NE\", \"G\", \" instruction\", \" to\", \" a\", \" nonzero\", \"\\\\newline\", \"oper\", \"and\", \" always\", \" sets\", \" the\", \" Car\", \"ry\", \" flag\", \".\\\"\", \"\\\\newline\", \"\\\\newline\", \"Why\", \" does\", \" sub\", \"stract\", \"ing\", \" 2\", \" from\", \" 1\", \" set\", \" the\", \" carry\", \" flag\", \"?\", \"\\\\newline\\\\newline\", \"           \", \"00000001\", \" (\", \"1\", \")\", \"\\\\newline\", \" +\", \"\\n\", \":\", \"\\\\newline\", \"\\\\newline\", \"Book\", \" stacking\", \" brain\", \" te\", \"aser\", \"\\\\newline\", \"\\\\newline\", \"I\", \"'ve\", \" been\", \" given\", \" a\", \" puzzle\", \",\", \" and\", \" I\", \" just\", \" can\", \"'t\", \" work\", \" out\", \" an\", \" answer\", \".\", \" Can\", \" you\", \" help\", \"?\", \"\\\\newline\", \"I\", \"'d\", \" also\", \" like\", \" to\", \" know\", \" your\", \" thought\", \" process\", \" for\", \" solving\", \",\", \" as\", \" this\", \" matters\", \" more\", \" than\", \" the\", \" correct\", \" answer\", \".\", \" Does\", \" it\", \" belong\", \" to\", \" a\", \" pattern\", \"\\n\", \" relevant\", \" data\", \" are\", \" within\", \" the\", \" paper\", \" and\", \" its\", \" Supporting\", \" Information\", \" files\", \".\", \"\\\\newline\", \"\\\\newline\", \"Introduction\", \" {#\", \"sec\", \"001\", \"}\", \"\\\\newline\", \"============\", \"\\\\newline\", \"\\\\newline\", \"During\", \" me\", \"iosis\", \",\", \" the\", \" accurate\", \" segregation\", \" of\", \" chromosomes\", \" relies\", \" on\", \" the\", \" formation\", \" of\", \" cros\", \"so\", \"vers\", \" (\", \"CO\", \"s\", \")\", \" and\", \" sister\", \" chromat\", \"id\", \" cohes\", \"ion\", \" \\\\[[@\", \"pbio\", \".\", \"100\", \"24\", \"12\", \".\", \"ref\", \"001\", \"\\n\", \":\", \"\\\\newline\", \"\\\\newline\", \"send\", \" key\", \" strokes\", \" to\", \" a\", \" window\", \" in\", \" v\", \"b\", \".\", \"net\", \" while\", \" it\", \" is\", \" still\", \" minimized\", \"\\\\newline\", \"\\\\newline\", \"I\", \" used\", \" to\", \" know\", \" v\", \"b\", \"6\", \" and\", \" I\", \" need\", \" to\", \" make\", \" a\", \" quick\", \" application\", \".\", \" I\", \" hope\", \" someone\", \" can\", \" help\", \" me\", \" with\", \" how\", \" to\", \" send\", \" keys\", \" to\", \" a\", \" minimized\", \" window\", \" in\", \" v\", \"b\", \".\", \"net\", \"\\\\newline\", \"thanks\", \"\\n\", \":\", \"\\\\newline\", \"\\\\newline\", \"str\", \"ace\", \":\", \" order\", \" of\", \"  \", \"and\", \" <\", \"...\", \" resumed\", \">\", \"\\\\newline\", \"\\\\newline\", \"I\", \"'m\", \" writing\", \" a\", \" script\", \" that\", \" analy\", \"zes\", \" file\", \" access\", \" traced\", \" with\", \" str\", \"ace\", \".\", \"\\\\newline\", \"The\", \" trace\", \" contains\", \" some\", \" calls\", \" which\", \" have\", \" been\", \" interrupted\", \" by\", \" another\", \" process\", \".\", \" str\", \"ace\", \" shows\", \" them\", \" with\", \" <\", \"un\", \"finished\", \"...\", \">\", \" and\", \" <\", \"...\", \" close\", \"\\n\"], \"activations\": [[[0.03048849105834961]], [[0.05086294934153557]], [[-0.04626527428627014]], [[-0.03387784957885742]], [[0.04073524475097656]], [[0.002000570297241211]], [[0.013426780700683594]], [[-0.00821995735168457]], [[-0.0007781386375427246]], [[-0.0026378631591796875]], [[-0.010128498077392578]], [[-0.014945119619369507]], [[-0.002644568681716919]], [[0.013439655303955078]], [[-0.005690217018127441]], [[0.0016710460186004639]], [[-0.012295365333557129]], [[-0.0002632737159729004]], [[-0.00019372720271348953]], [[0.001712113618850708]], [[0.00018303096294403076]], [[0.00608062744140625]], [[-0.006345510482788086]], [[-0.0021276473999023438]], [[-0.006614208221435547]], [[0.005076169967651367]], [[0.019738197326660156]], [[0.0013513565063476562]], [[-0.0016463994979858398]], [[0.007698535919189453]], [[-0.000331878662109375]], [[-0.001248963177204132]], [[0.0009152889251708984]], [[-0.012726068496704102]], [[-1.7609447240829468e-05]], [[-0.00012413039803504944]], [[-3.4809112548828125e-05]], [[0.001705169677734375]], [[-0.0006272792816162109]], [[0.003161907196044922]], [[-2.0503997802734375e-05]], [[-0.0008859634399414062]], [[0.0017414093017578125]], [[0.0003998279571533203]], [[0.00322723388671875]], [[0.002307295799255371]], [[-0.0005981922149658203]], [[0.00396728515625]], [[-0.003276348114013672]], [[-0.0006151199340820312]], [[-3.368780016899109e-05]], [[0.0021744966506958008]], [[-0.0011125802993774414]], [[-0.0018892288208007812]], [[0.0014467239379882812]], [[0.015268802642822266]], [[0.011887550354003906]], [[-0.0011749267578125]], [[-0.004900932312011719]], [[0.0]], [[0.03048849105834961]], [[0.05101757124066353]], [[-0.04626527428627014]], [[-0.03387784957885742]], [[0.01609194278717041]], [[0.014496803283691406]], [[0.012716412544250488]], [[-0.0029287338256835938]], [[-0.016499757766723633]], [[0.004958033561706543]], [[-0.03235518932342529]], [[-0.016043663024902344]], [[-0.013089179992675781]], [[-0.018815279006958008]], [[-0.0028031468391418457]], [[-0.0016920045018196106]], [[0.06132841110229492]], [[0.003464818000793457]], [[-0.0018041133880615234]], [[0.01316213607788086]], [[-0.00571441650390625]], [[-0.006057962775230408]], [[-0.005024909973144531]], [[0.0016570091247558594]], [[-0.007022380828857422]], [[-0.00010645389556884766]], [[-0.009000420570373535]], [[-0.004842281341552734]], [[0.006484508514404297]], [[-0.0030012130737304688]], [[-0.0002484321594238281]], [[-0.011282920837402344]], [[0.004199981689453125]], [[0.0016982555389404297]], [[0.0008913278579711914]], [[-0.013216972351074219]], [[-0.0033903121948242188]], [[0.00014781951904296875]], [[0.0018305778503417969]], [[-0.00833892822265625]], [[-0.0034055709838867188]], [[0.0015550851821899414]], [[0.004064321517944336]], [[0.006989002227783203]], [[0.0026540756225585938]], [[-0.0020362138748168945]], [[-0.0019960403442382812]], [[-0.005774497985839844]], [[0.002452850341796875]], [[0.0016856193542480469]], [[-0.0012142062187194824]], [[0.00643157958984375]], [[0.00032973289489746094]], [[0.0019211769104003906]], [[0.0067403316497802734]], [[-0.0007318258285522461]], [[-0.005802631378173828]], [[-0.0005581378936767578]], [[-0.017459869384765625]], [[0.0]], [[0.0]], [[1.2636184692382812e-05]], [[9.5367431640625e-07]], [[0.0]], [[3.266334533691406e-05]], [[-1.1444091796875e-05]], [[-0.0001430511474609375]], [[4.76837158203125e-06]], [[-3.147125244140625e-05]], [[1.430511474609375e-06]], [[0.000606536865234375]], [[4.57763671875e-05]], [[-0.0009307861328125]], [[1.3113021850585938e-05]], [[-0.00018453598022460938]], [[3.147125244140625e-05]], [[7.152557373046875e-07]], [[-4.172325134277344e-05]], [[-0.0002593994140625]], [[1.9073486328125e-06]], [[4.38690185546875e-05]], [[-2.002716064453125e-05]], [[-1.9073486328125e-06]], [[9.5367431640625e-07]], [[-1.1920928955078125e-05]], [[-2.384185791015625e-05]], [[1.9073486328125e-06]], [[-3.814697265625e-05]], [[2.574920654296875e-05]], [[2.6226043701171875e-06]], [[0.0017465054988861084]], [[-0.00104522705078125]], [[-0.0027894973754882812]], [[0.0008115768432617188]], [[0.0002448558807373047]], [[-0.0002727508544921875]], [[-0.0015835762023925781]], [[0.00023937225341796875]], [[0.0039675235748291016]], [[-0.0020055770874023438]], [[-0.0016803741455078125]], [[0.0005220174789428711]], [[0.0004483461380004883]], [[-0.00015103816986083984]], [[-0.0011458396911621094]], [[-0.0005147457122802734]], [[-0.00360870361328125]], [[-0.0005435943603515625]], [[-1.3113021850585938e-06]], [[0.00020885467529296875]], [[0.00034427642822265625]], [[-0.0009794235229492188]], [[-0.0003566741943359375]], [[-5.830079317092896e-07]], [[-0.00018024444580078125]], [[1.1771917343139648e-06]], [[1.18953175842762e-06]], [[6.951391696929932e-05]], [[-0.00034809112548828125]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[-0.00027370452880859375]], [[-7.021427154541016e-05]], [[1.71661376953125e-05]], [[1.1548399925231934e-07]], [[0.0]], [[1.9073486328125e-06]], [[0.0]], [[2.384185791015625e-07]], [[7.867813110351562e-06]], [[0.0]], [[2.384185791015625e-06]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[-0.006214618682861328]], [[-0.0005608797073364258]], [[0.0004515647888183594]], [[-0.0009366273880004883]], [[5.9038400650024414e-05]], [[-9.953975677490234e-05]], [[0.0003314018249511719]], [[-0.0002465248107910156]], [[0.00011491775512695312]], [[3.55839729309082e-05]], [[-5.304813385009766e-06]], [[-0.0005097389221191406]], [[-6.330013275146484e-05]], [[-0.0010693073272705078]], [[-6.151199340820312e-05]], [[7.867813110351562e-05]], [[3.647804260253906e-05]], [[0.0002422332763671875]], [[-0.000469207763671875]], [[0.00022137165069580078]], [[3.528594970703125e-05]], [[-0.0005922317504882812]], [[-0.0006535053253173828]], [[-0.0002675056457519531]], [[0.00012969970703125]], [[1.239776611328125e-05]], [[0.0001201927661895752]], [[-0.0005540847778320312]], [[1.9356608390808105e-05]], [[0.0008177757263183594]], [[0.0004171133041381836]], [[-0.0005712509155273438]], [[-0.00013685226440429688]], [[-0.0002574920654296875]], [[-8.636713027954102e-05]], [[-0.00011992454528808594]], [[0.0002899169921875]], [[0.0005712509155273438]], [[0.0]], [[0.03048849105834961]], [[0.0507240854203701]], [[-0.04626527428627014]], [[-0.03387784957885742]], [[-0.04802751541137695]], [[-0.003078460693359375]], [[0.006945610046386719]], [[0.014514923095703125]], [[-0.0023717880249023438]], [[-0.026944637298583984]], [[0.0021619796752929688]], [[-0.008505821228027344]], [[9.632110595703125e-05]], [[0.007330894470214844]], [[0.0015368461608886719]], [[-0.024954888969659805]], [[-5.364418029785156e-07]], [[0.007061958312988281]], [[-0.004863828420639038]], [[-0.004984676837921143]], [[-0.0007680021226406097]], [[0.021465778350830078]], [[0.0018589496612548828]], [[0.018175125122070312]], [[0.007729768753051758]], [[-0.002371549606323242]], [[-0.0019115209579467773]], [[0.005342006683349609]], [[-0.0012998580932617188]], [[0.0009897947311401367]], [[0.005702495574951172]], [[-0.0014519691467285156]], [[-0.0024476051330566406]], [[0.0009245872497558594]], [[0.0033631324768066406]], [[0.007866382598876953]], [[0.0027952194213867188]], [[-0.012298583984375]], [[0.004639625549316406]], [[0.006473541259765625]], [[0.009697914123535156]], [[-0.00883626937866211]], [[-0.006273746490478516]], [[-0.0005536079406738281]], [[0.0014449357986450195]], [[0.0015023350715637207]], [[-0.0009996891021728516]], [[0.0023527145385742188]], [[-0.003265380859375]], [[-0.003204822540283203]], [[-0.0003096163272857666]], [[0.0010292530059814453]], [[0.0003898143768310547]], [[-0.0026810169219970703]], [[-0.0007092952728271484]], [[-0.0008474588394165039]], [[0.004855632781982422]], [[-0.00015211105346679688]], [[-0.0004935264587402344]], [[0.0]], [[0.03048849105834961]], [[0.051294248551130295]], [[-0.04626527428627014]], [[-0.013614177703857422]], [[-0.03974437713623047]], [[-0.017896056175231934]], [[0.002216339111328125]], [[-0.030401229858398438]], [[-0.02576160430908203]], [[-0.029384374618530273]], [[-0.016035467386245728]], [[-0.0047052353620529175]], [[0.0022411346435546875]], [[-0.004506230354309082]], [[0.005453586578369141]], [[-0.000916898250579834]], [[-0.012607336044311523]], [[0.0077152252197265625]], [[0.0001468658447265625]], [[-0.003533482551574707]], [[0.0018672943115234375]], [[0.0006725788116455078]], [[-0.006633758544921875]], [[-0.0037539005279541016]], [[0.0010870695114135742]], [[-0.013407707214355469]], [[0.01618051528930664]], [[0.012427330017089844]], [[0.003197312355041504]], [[0.0003261566162109375]], [[-0.006859540939331055]], [[0.0004658699035644531]], [[0.0008611679077148438]], [[-0.0038900375366210938]], [[-0.00601804256439209]], [[-0.005408525466918945]], [[-0.006145387887954712]], [[-0.0008925199508666992]], [[-0.0036230087280273438]], [[-0.0040056705474853516]], [[0.0018510818481445312]], [[-0.020078182220458984]], [[-0.000542759895324707]], [[0.0032553672790527344]], [[0.012723445892333984]], [[-0.0036449432373046875]], [[0.006476879119873047]], [[-0.0011043548583984375]], [[0.018826961517333984]], [[-0.00032132863998413086]], [[-0.00038123130798339844]], [[-0.0035409927368164062]], [[0.017943382263183594]], [[-0.0020704269409179688]], [[0.000682830810546875]], [[-0.0013890266418457031]], [[-0.0006083250045776367]], [[0.004020810127258301]], [[0.0029239654541015625]], [[0.0]], [[0.03048849105834961]], [[0.05132625252008438]], [[-0.04626527428627014]], [[0.014996528625488281]], [[-0.027254104614257812]], [[0.032668113708496094]], [[0.04698371887207031]], [[-0.009420394897460938]], [[-0.08787727355957031]], [[-0.0061271339654922485]], [[-0.008399486541748047]], [[-0.004248142242431641]], [[0.001967191696166992]], [[-0.002135753631591797]], [[0.00034797191619873047]], [[-0.0020465850830078125]], [[-0.0035028457641601562]], [[0.005410313606262207]], [[-0.0017265081405639648]], [[0.0030889511108398438]], [[0.004545450210571289]], [[-4.4842250645160675e-05]], [[-0.0064601898193359375]], [[0.0021064281463623047]], [[0.005526542663574219]], [[0.010310769081115723]], [[-0.001031637191772461]], [[-0.001976490020751953]], [[0.01201164722442627]], [[0.00032007694244384766]], [[0.0029723644256591797]], [[-0.0003159940242767334]], [[0.008004426956176758]], [[0.00688481330871582]], [[0.004766941070556641]], [[-1.831352710723877e-05]], [[0.0009055733680725098]], [[0.010576725006103516]], [[-0.01564502716064453]], [[-0.006796360015869141]], [[-0.003916740417480469]], [[0.007155895233154297]], [[0.02213430404663086]], [[0.003066539764404297]], [[0.0014722347259521484]], [[0.0018115043640136719]], [[-0.00653076171875]], [[7.2479248046875e-05]], [[-0.0009918808937072754]], [[0.0012128353118896484]], [[-0.0056209564208984375]], [[0.0016506314277648926]], [[0.0013965964317321777]], [[-0.00186920166015625]], [[-0.0032219886779785156]], [[-0.00808572769165039]], [[0.0001315772533416748]], [[-0.000659942626953125]], [[1.52587890625e-05]], [[0.0]], [[0.0]], [[6.830692291259766e-05]], [[-1.0967254638671875e-05]], [[4.76837158203125e-07]], [[1.4722347259521484e-05]], [[-2.384185791015625e-06]], [[-3.230571746826172e-05]], [[2.5272369384765625e-05]], [[2.6226043701171875e-06]], [[-8.475035429000854e-05]], [[0.00072479248046875]], [[-4.1991472244262695e-05]], [[-5.2809715270996094e-05]], [[5.418434739112854e-06]], [[-0.00036787986755371094]], [[0.0019341260194778442]], [[-0.0027355849742889404]], [[-0.0031018853187561035]], [[-4.340941086411476e-05]], [[0.0]], [[2.384149411227554e-07]], [[-7.720646681264043e-05]], [[-3.576260496629402e-07]], [[0.000492095947265625]], [[-0.013589859008789062]], [[-0.0031548142433166504]], [[-0.0016723275184631348]], [[-0.004603743553161621]], [[0.0037450790405273438]], [[0.008342742919921875]], [[0.0005039125680923462]], [[0.0013933181762695312]], [[0.0027904510498046875]], [[0.0004333406686782837]], [[-0.0009461045265197754]], [[0.002687215805053711]], [[2.4324283003807068e-05]], [[-0.0005655288696289062]], [[-0.0006492435932159424]], [[-0.00031945109367370605]], [[0.005142688751220703]], [[-0.0029344558715820312]], [[-0.0001615285873413086]], [[-0.004601895809173584]], [[-0.00012886524200439453]], [[-0.0012803077697753906]], [[-7.133185863494873e-05]], [[2.1338462829589844e-05]], [[0.0013605356216430664]], [[-1.9066035747528076e-05]], [[0.0006167888641357422]], [[0.0016064643859863281]], [[0.000173104926943779]], [[0.0008985996246337891]], [[-1.6450881958007812e-05]], [[1.52587890625e-05]], [[-4.6263448894023895e-06]], [[-3.524450585246086e-05]], [[0.002746105194091797]], [[0.0]], [[0.03048849105834961]], [[0.05129058659076691]], [[-0.04626527428627014]], [[-0.010697364807128906]], [[-0.05606794357299805]], [[0.052730560302734375]], [[0.02408277988433838]], [[0.028455376625061035]], [[-0.02764272689819336]], [[0.020656108856201172]], [[-0.029513835906982422]], [[0.0006048679351806641]], [[0.019240140914916992]], [[0.04180145263671875]], [[0.054823875427246094]], [[-0.044600486755371094]], [[0.00019466876983642578]], [[0.0005583763122558594]], [[-0.011462211608886719]], [[-0.03912913799285889]], [[-0.006236054003238678]], [[0.005599260330200195]], [[0.025105953216552734]], [[0.0034477710723876953]], [[-0.002913951873779297]], [[0.0005774497985839844]], [[-0.0008152350783348083]], [[0.008374214172363281]], [[0.0005431175231933594]], [[0.0017588138580322266]], [[0.0016031265258789062]], [[-0.0003217458724975586]], [[0.003039121627807617]], [[0.00026154518127441406]], [[0.0019521713256835938]], [[0.005736827850341797]], [[-0.00039386749267578125]], [[0.00397181510925293]], [[-0.0007696151733398438]], [[0.00746607780456543]], [[-0.0012930631637573242]], [[-3.892183303833008e-05]], [[0.0003498196601867676]], [[-0.0005691051483154297]], [[-0.0009250640869140625]], [[0.000597834587097168]], [[-0.006694316864013672]], [[-0.005859851837158203]], [[-0.001914680004119873]], [[0.0007060766220092773]], [[-0.0022563934326171875]], [[-0.00023227930068969727]], [[-0.005097150802612305]], [[-8.553266525268555e-05]], [[-0.0001144111156463623]], [[0.0008599311113357544]], [[-4.1097402572631836e-05]], [[-0.002460956573486328]], [[0.002811431884765625]], [[0.0]], [[0.03048849105834961]], [[0.050839632749557495]], [[-0.04626527428627014]], [[0.041831016540527344]], [[0.02096080780029297]], [[-0.04514169692993164]], [[-0.1093597412109375]], [[0.006832122802734375]], [[-0.020437240600585938]], [[0.014636039733886719]], [[0.034473419189453125]], [[-0.036131858825683594]], [[-0.03497600555419922]], [[0.002023458480834961]], [[-0.047224462032318115]], [[-0.002987578511238098]], [[-0.0010486841201782227]], [[-0.0015404224395751953]], [[0.005618572235107422]], [[-0.006212294101715088]], [[-0.02455902099609375]], [[0.004263758659362793]], [[0.0147552490234375]], [[-7.256399840116501e-06]], [[0.009070396423339844]], [[-0.004077434539794922]], [[0.005023002624511719]], [[-0.008174896240234375]], [[0.03088855743408203]], [[-0.002393752336502075]], [[0.012646079063415527]], [[-0.014101743698120117]], [[0.0010797977447509766]], [[0.008491039276123047]], [[-0.0037064552307128906]], [[0.017645835876464844]], [[-0.0067806243896484375]], [[-0.002846240997314453]], [[0.0017113685607910156]], [[0.012084245681762695]], [[0.01933574676513672]], [[-0.0002086162567138672]], [[0.0031614303588867188]], [[-0.0030107498168945312]], [[0.00043904781341552734]], [[0.0077419281005859375]], [[0.00018543191254138947]], [[-0.0037889480590820312]], [[0.025687217712402344]], [[-0.004215240478515625]], [[0.0031681060791015625]], [[0.013245582580566406]], [[-0.002704620361328125]], [[0.004695892333984375]], [[-0.005504131317138672]], [[0.001908421516418457]], [[-0.005528926849365234]], [[-0.0002486705780029297]], [[0.0046215057373046875]], [[0.0]]], \"firstDimensionName\": \"Layer\", \"secondDimensionName\": \"Neuron\"}\n",
       "    )\n",
       "    </script>"
      ],
      "text/plain": [
       "<circuitsvis.utils.render.RenderedHTML at 0x7f03ab5ce380>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "visualize_logit_diff(full_text, best_feature)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div id=\"circuits-vis-c1e6120e-4c6d\" style=\"margin: 15px 0;\"/>\n",
       "    <script crossorigin type=\"module\">\n",
       "    import { render, TextNeuronActivations } from \"https://unpkg.com/circuitsvis@1.40.0/dist/cdn/esm.js\";\n",
       "    render(\n",
       "      \"circuits-vis-c1e6120e-4c6d\",\n",
       "      TextNeuronActivations,\n",
       "      {\"tokens\": [\"k\", \")*(-\", \"7\", \" +\", \" 11\", \" -\", \" 23\", \")*(\", \"3\", \"*\", \"k\", \"\\n\", \"-\", \"5\", \"\\\\newline\", \"Express\", \" (-\", \"3\", \" +\", \" 6\", \" +\", \" 0\", \")*(-\", \"4\", \"*\", \"n\", \" +\", \" 3\", \"*\", \"n\", \" +\", \" 2\", \"*\", \"n\", \")\", \" +\", \" 3\", \"*\", \"n\", \" +\", \" 5\", \" -\", \" 1\", \" -\", \" 5\", \"*\", \"n\", \"\\n\", \"-\", \"5\", \"\\\\newline\", \"Express\", \" (-\", \"3\", \" +\", \" 6\", \" +\", \" 0\", \")*(-\", \"4\", \"*\", \"n\", \" +\", \" 3\", \"*\", \"n\", \" +\", \" 2\", \"*\", \"n\", \")\", \" +\", \" 3\", \"*\", \"n\", \"\\n\", \"-\", \"5\", \"\\\\newline\", \"Express\", \" (-\", \"3\", \" +\", \" 6\", \" +\", \" 0\", \")*(-\", \"4\", \"*\", \"n\", \" +\", \" 3\", \"*\", \"n\", \" +\", \" 2\", \"*\", \"n\", \"\\n\", \"-\", \"5\", \"\\\\newline\", \"Express\", \" (-\", \"3\", \" +\", \" 6\", \" +\", \" 0\", \")*(-\", \"4\", \"*\", \"n\", \" +\", \" 3\", \"*\", \"n\", \"\\n\", \"2\", \" -\", \" 123\", \"*\", \"h\", \"**\", \"3\", \" +\", \" 191\", \"*\", \"h\", \"**\", \"3\", \" -\", \" 125\", \"7\", \" +\", \" 6\", \"31\", \".\", \"\\\\newline\", \"-\", \"2\", \"*\", \"h\", \"**\", \"3\", \" -\", \" 12\", \"18\", \"\\\\newline\", \"Collect\", \" the\", \" terms\", \" in\", \" 5\", \"1024\", \"70\", \"*\", \"k\", \" -\", \" 5\", \"78\", \"*\", \"k\", \"\\n\", \"-\", \" 15\", \".\", \"\\\\newline\", \"2\", \"*\", \"m\", \" -\", \" 30\", \"\\\\newline\", \"Collect\", \" the\", \" terms\", \" in\", \" 34\", \"*\", \"a\", \" -\", \" 62\", \"*\", \"a\", \" -\", \" 76\", \"*\", \"a\", \"\\n\", \"-\", \" 15\", \".\", \"\\\\newline\", \"2\", \"*\", \"m\", \" -\", \" 30\", \"\\\\newline\", \"Collect\", \" the\", \" terms\", \" in\", \" 34\", \"*\", \"a\", \" -\", \" 62\", \"*\", \"a\", \" -\", \" 76\", \"*\", \"a\", \".\", \"\\\\newline\", \"-\", \"104\", \"*\", \"a\", \"\\n\", \"ect\", \" the\", \" terms\", \" in\", \" 154\", \"01\", \"*\", \"w\", \"**\", \"3\", \" +\", \" 114\", \"34\", \"*\", \"w\", \"**\", \"3\", \" -\", \" 3\", \"005\", \"*\", \"w\", \"**\", \"3\", \".\", \"\\\\newline\", \"238\", \"30\", \"*\", \"w\", \"**\", \"3\", \"\\\\newline\", \"Collect\", \" the\", \" terms\", \" in\", \" 5\", \"651\", \"*\", \"d\", \" -\", \" 26\", \"29\", \"*\", \"d\", \" +\", \" 3\", \"109\", \"*\", \"d\", \".\", \"\\\\newline\", \"6\", \"131\", \"*\", \"d\", \"\\n\", \"ms\", \" in\", \" 72\", \"*\", \"z\", \" +\", \" 56\", \"*\", \"z\", \" +\", \" 10\", \"*\", \"z\", \".\", \"\\\\newline\", \"138\", \"*\", \"z\", \"\\\\newline\", \"Collect\", \" the\", \" terms\", \" in\", \" 142\", \"*\", \"o\", \" +\", \" 140\", \"*\", \"o\", \" +\", \" 132\", \"*\", \"o\", \" -\", \" 6\", \"84\", \"*\", \"o\", \" +\", \" 133\", \"*\", \"o\", \"\\n\"], \"activations\": [[[-0.8345355987548828]], [[-0.6108283996582031]], [[-0.0053653717041015625]], [[-0.4133338928222656]], [[-0.0053157806396484375]], [[-0.6537761688232422]], [[-0.09076309204101562]], [[0.09437179565429688]], [[-0.8192787170410156]], [[-8.423026084899902]], [[-11.451762199401855]], [[0.0]], [[0.008260726928710938]], [[-0.024109840393066406]], [[-0.040099143981933594]], [[-1.4766483306884766]], [[-0.09227657318115234]], [[0.0450592041015625]], [[0.01874542236328125]], [[0.025330543518066406]], [[0.014578819274902344]], [[0.010077476501464844]], [[-0.24563121795654297]], [[0.03648567199707031]], [[0.017276763916015625]], [[0.04007244110107422]], [[0.05064868927001953]], [[0.05028343200683594]], [[0.007401466369628906]], [[0.03411388397216797]], [[0.04279613494873047]], [[0.04436969757080078]], [[0.0019655227661132812]], [[0.017734527587890625]], [[-0.05451393127441406]], [[0.031175613403320312]], [[0.03695392608642578]], [[-0.06442737579345703]], [[-0.022607803344726562]], [[0.0985116958618164]], [[0.10181713104248047]], [[0.11702442169189453]], [[0.015421867370605469]], [[0.1032419204711914]], [[-0.19478988647460938]], [[-6.500808238983154]], [[-10.99098014831543]], [[0.0]], [[-0.04625701904296875]], [[-0.028583526611328125]], [[-0.029661178588867188]], [[-1.9118099212646484]], [[-0.18106460571289062]], [[0.005824089050292969]], [[-0.0282440185546875]], [[-0.021434783935546875]], [[-0.04211902618408203]], [[-0.034317970275878906]], [[-0.2891960144042969]], [[-0.03376007080078125]], [[-0.052824974060058594]], [[0.017232894897460938]], [[-0.008980751037597656]], [[0.06164360046386719]], [[-0.04872894287109375]], [[-0.01848316192626953]], [[0.019216537475585938]], [[0.0042896270751953125]], [[-0.07883071899414062]], [[0.011753082275390625]], [[-0.03593254089355469]], [[-0.08234977722167969]], [[-0.47078418731689453]], [[-6.69075345993042]], [[-10.96261215209961]], [[0.0]], [[-0.07811832427978516]], [[0.006089210510253906]], [[0.0941019058227539]], [[-1.4429121017456055]], [[-0.013202667236328125]], [[0.052420616149902344]], [[-0.021673202514648438]], [[0.017543792724609375]], [[-0.03752613067626953]], [[-0.0030164718627929688]], [[-0.33080291748046875]], [[-0.029730796813964844]], [[-0.03279399871826172]], [[-0.11226558685302734]], [[0.02077198028564453]], [[0.02622509002685547]], [[-0.08753299713134766]], [[-0.018660545349121094]], [[-0.034401893615722656]], [[-0.4353351593017578]], [[-5.407068252563477]], [[-10.913336753845215]], [[0.0]], [[-0.044200897216796875]], [[0.03635597229003906]], [[0.09290218353271484]], [[-1.2120590209960938]], [[-0.011838912963867188]], [[0.11215782165527344]], [[0.018926620483398438]], [[0.0185089111328125]], [[0.02093982696533203]], [[-0.02202892303466797]], [[-0.3663606643676758]], [[-0.15027713775634766]], [[-0.2022686004638672]], [[-0.6708717346191406]], [[-0.11631965637207031]], [[-0.46622467041015625]], [[-6.371661186218262]], [[-10.83760929107666]], [[0.0]], [[0.017721176147460938]], [[0.00342559814453125]], [[-0.02088165283203125]], [[0.01702404022216797]], [[0.012910842895507812]], [[-0.00821685791015625]], [[0.0057964324951171875]], [[-0.010150909423828125]], [[0.0012531280517578125]], [[0.03158378601074219]], [[0.018639564514160156]], [[0.002376556396484375]], [[0.011903762817382812]], [[0.0018110275268554688]], [[-0.013594627380371094]], [[0.018495559692382812]], [[-0.02546215057373047]], [[-0.010534286499023438]], [[-0.00305938720703125]], [[-0.04535675048828125]], [[0.1724071502685547]], [[-0.11981773376464844]], [[-0.010702133178710938]], [[-0.035671234130859375]], [[0.015400886535644531]], [[-0.005305290222167969]], [[0.011995315551757812]], [[0.011442184448242188]], [[0.000774383544921875]], [[-0.022490501403808594]], [[0.08549785614013672]], [[-3.266132354736328]], [[-0.018247604370117188]], [[-0.09936714172363281]], [[-0.29265403747558594]], [[-0.0073299407958984375]], [[-0.0073566436767578125]], [[-0.010511398315429688]], [[-0.17824363708496094]], [[-1.5208606719970703]], [[-0.6214256286621094]], [[-0.3673439025878906]], [[-0.4516925811767578]], [[-7.698159694671631]], [[-10.81989860534668]], [[0.0]], [[-0.00531768798828125]], [[0.009163856506347656]], [[-0.08741092681884766]], [[0.08261585235595703]], [[0.011522293090820312]], [[0.010962486267089844]], [[-0.05451011657714844]], [[-0.2845592498779297]], [[-0.04046154022216797]], [[-0.056374549865722656]], [[-3.0547618865966797]], [[-0.10775566101074219]], [[-0.009368896484375]], [[-0.20626354217529297]], [[-0.06441688537597656]], [[0.038390159606933594]], [[-0.1775646209716797]], [[-0.11668109893798828]], [[0.03716850280761719]], [[0.12266826629638672]], [[-0.13731956481933594]], [[-0.2991008758544922]], [[-0.9521579742431641]], [[-7.674153804779053]], [[-10.743856430053711]], [[0.0]], [[-0.003078460693359375]], [[0.01802539825439453]], [[-0.09475040435791016]], [[0.03421592712402344]], [[0.019254684448242188]], [[0.053802490234375]], [[-0.031319618225097656]], [[-0.1011667251586914]], [[-0.017414093017578125]], [[0.01532745361328125]], [[-3.224140167236328]], [[-0.10824394226074219]], [[0.04246330261230469]], [[-0.06339740753173828]], [[-0.026193618774414062]], [[0.06621265411376953]], [[-0.030969619750976562]], [[-0.011816978454589844]], [[0.04462242126464844]], [[0.1001739501953125]], [[-0.15205764770507812]], [[-0.003448486328125]], [[-0.06940460205078125]], [[0.014161109924316406]], [[-0.08475112915039062]], [[-0.0033054351806640625]], [[-0.2263965606689453]], [[-0.14942646026611328]], [[-1.1048393249511719]], [[-7.557246685028076]], [[-10.673683166503906]], [[0.0]], [[0.017572402954101562]], [[0.02138519287109375]], [[-0.011608123779296875]], [[0.04137611389160156]], [[-0.004771232604980469]], [[0.005921363830566406]], [[0.062652587890625]], [[0.030124664306640625]], [[0.058139801025390625]], [[0.0203399658203125]], [[0.08094215393066406]], [[-0.013700485229492188]], [[-0.006884574890136719]], [[-0.004548072814941406]], [[0.013463973999023438]], [[0.0244903564453125]], [[-0.0012083053588867188]], [[0.020555496215820312]], [[0.01831817626953125]], [[0.01160430908203125]], [[0.013887405395507812]], [[0.032833099365234375]], [[0.024908065795898438]], [[-0.003650665283203125]], [[-0.08251380920410156]], [[0.0871734619140625]], [[0.0142364501953125]], [[0.003711700439453125]], [[-0.014077186584472656]], [[0.03376579284667969]], [[0.03708457946777344]], [[0.006901741027832031]], [[0.13222694396972656]], [[-2.465785026550293]], [[0.05910491943359375]], [[0.10391616821289062]], [[0.04319477081298828]], [[0.10291099548339844]], [[0.1367473602294922]], [[0.0740652084350586]], [[-0.009481430053710938]], [[-0.060677528381347656]], [[0.07413864135742188]], [[0.06814765930175781]], [[0.044017791748046875]], [[-0.017137527465820312]], [[-0.041835784912109375]], [[0.07100296020507812]], [[0.1562175750732422]], [[-0.03645896911621094]], [[0.011875152587890625]], [[0.0066699981689453125]], [[-0.17665863037109375]], [[-0.06800365447998047]], [[-0.5467863082885742]], [[-7.222833633422852]], [[-10.669210433959961]], [[0.0]], [[0.003673553466796875]], [[-0.008324623107910156]], [[0.007984161376953125]], [[0.004730224609375]], [[0.019716262817382812]], [[-0.05165290832519531]], [[0.00013256072998046875]], [[0.011507034301757812]], [[0.03417396545410156]], [[-0.05821037292480469]], [[0.0033063888549804688]], [[0.03210926055908203]], [[0.03381919860839844]], [[-0.23942852020263672]], [[0.20708942413330078]], [[0.035160064697265625]], [[0.07077884674072266]], [[0.08120441436767578]], [[0.16026878356933594]], [[-2.5760650634765625]], [[0.10687255859375]], [[0.1021881103515625]], [[0.053188323974609375]], [[0.1624298095703125]], [[0.08040237426757812]], [[0.0865936279296875]], [[0.04672431945800781]], [[0.09786319732666016]], [[0.06430625915527344]], [[0.09339046478271484]], [[0.03137969970703125]], [[0.17061996459960938]], [[0.08032417297363281]], [[0.07623481750488281]], [[0.10869503021240234]], [[0.09675025939941406]], [[0.10405349731445312]], [[0.013702392578125]], [[0.027738571166992188]], [[-0.2459087371826172]], [[-1.310079574584961]], [[-6.232921600341797]], [[-10.632139205932617]], [[0.0]]], \"firstDimensionName\": \"Layer\", \"secondDimensionName\": \"Neuron\"}\n",
       "    )\n",
       "    </script>"
      ],
      "text/plain": [
       "<circuitsvis.utils.render.RenderedHTML at 0x7f020c2281f0>"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ablate_text(text_list, best_feature, model, setting=\"plot\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([2048, 4096])"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "larger_auto_encoder.decoder.weight.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1996"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "ename": "IndentationError",
     "evalue": "expected an indented block after 'if' statement on line 8 (2601719594.py, line 9)",
     "output_type": "error",
     "traceback": [
      "\u001b[0;36m  Cell \u001b[0;32mIn[62], line 9\u001b[0;36m\u001b[0m\n\u001b[0;31m    pass\u001b[0m\n\u001b[0m    ^\u001b[0m\n\u001b[0;31mIndentationError\u001b[0m\u001b[0;31m:\u001b[0m expected an indented block after 'if' statement on line 8\n"
     ]
    }
   ],
   "source": [
    "features = 2\n",
    "if isinstance(features, int):\n",
    "    features = torch.tensor([features])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "if True:\n",
    "    pass"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "logit_diff = original_logits.log_softmax(dim=-1) - ablated_logits.log_softmax(dim=-1)\n",
    "# Gather the logit difference for the true label\n",
    "predicted_logit_diff = logit_diff[:,:-1].gather(dim=-1, index=all_tokens[:,1:].unsqueeze(-1))\n",
    "predicted_logit_diff = predicted_logit_diff.squeeze(-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([10, 59])"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(torch.Size([10, 59, 50304]), torch.Size([10, 59]))"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "logit_diff[:, 1:].shape, all_tokens[:,:-1].shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([580380, 2048])"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Find the feature direction of the first feature\n",
    "dictionary_activations.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "vscode": {
     "languageId": "shellscript"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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0CATFBRkvLy8TGRkpHnjjTec6hQ8ZosWLTJPP/20ueKKK4zD4TCdOnUy+/btc+rPhY97SbMxmZmZxtPT04wePdqpPDs72/j6+prBgwdfdPzshhmYS0hmZqZ+/fXXQuW5ubkXve+ECROUmJio+++/X9dff72ysrK0Y8cOff755/rb3/6m//u//9Phw4eVlJSkt99+2+m+xhj17NlTGzZs0ODBg9WyZUutXr1ao0eP1s8//6zp06dbde+9914tXrxY/fv3V9u2bbVp0ybFxsYW268777xTjRo10jPPPCNjjCQpKSlJP/zwgwYNGqSQkBDt3r1bs2fP1u7du7Vly5ZCB+H16dNHTZo00ZQpU7RixQo9/fTTCgwM1L/+9S916tRJzz77rObPn6+HH35Y1113ndq3b1/iWN1///166623dMcdd2jUqFHaunWrEhMT9fXXX2vp0qWSpLfffluzZ8/Wtm3b9Prrr0uSbrjhhhLbPXz4sDZs2KC33npLktSvXz9Nnz5dr7zyitPMxZdffql27dqpSpUqGjJkiOrXr6/vv/9eH374oSZPnqzbb79d3377rf773/9q+vTpqlWrliSpdu3ahbbZpk0bXXnllVq8eLEGDhzotG7RokWqUaOGYmJiJEnbt2/XZ599pr59+6pu3bo6cOCAZs2apY4dO2rPnj2qWrWq2rdvr4ceekgvvfSSHnvsMTVp0kSSrH8vdObMGXXs2FHfffedhg0bpoiICC1ZskT33nuvMjIy9M9//tOp/oIFC3Ty5En93//9n9zc3DR16lTdfvvt+uGHH1SlShVJUu/evbV7924NHz5c9evX19GjR5WUlKSDBw+qfv36RfZj3LhxuvrqqzV79mxNnDhRERERatCggaTfj1UZNGiQrrvuOiUmJio9PV0zZszQp59+qp07dzrN2Jw7d04xMTG66aab9Nxzz6lq1apFbq80+vfvr8cee0xr1qzRAw88UGy9p556ShMmTNANN9ygiRMnysvLS1u3btX69evVtWtXvfjiixo+fLh8fX01btw4SVJwcHCx7bmyv3l5eYqJiVFUVJSee+45rV27Vs8//7waNGigBx980Ko3Y8YM9ezZU3FxccrJydHChQt15513avny5YVe/+vXr9fixYs1bNgw1apVSxEREbrnnns0depUHT9+XIGBgVbdDz/8UFlZWaWaWcnN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czp+/Lh13ExISIjS09Od6hTcLu7YGofDIT8/P6cFAABcnio8wBw6dEjHjh1TnTp1JEnR0dHKyMhQSkqKVWf9+vXKz89XVFSUVWfz5s3Kzc216iQlJenqq69WjRo1KrrLAADgEudygDl16pRSU1OVmpoqSdq/f79SU1N18OBBnTp1SqNHj9aWLVt04MABrVu3TrfddpsaNmyomJgYSVKTJk3UrVs3PfDAA9q2bZs+/fRTDRs2TH379lVoaKgk6e6775aXl5cGDx6s3bt3a9GiRZoxY4bTV0QAAOCvy+UAs2PHDrVq1UqtWrWSJCUkJKhVq1YaP368PDw89OWXX6pnz5666qqrNHjwYLVu3Voff/yxHA6H1cb8+fPVuHFjde7cWbfccotuuukmp2u8+Pv7a82aNdq/f79at26tUaNGafz48ZxCDQAAJJXhIN6OHTvKGFPs+tWrV1+0jcDAQC1YsKDEOs2bN9fHH3/savcAAMBfAL+FBAAAbIcAAwAAbIcAAwAAbIcAAwAAbIcAAwAAbIcAAwAAbIcAAwAAbIcAAwAAbIcAAwAAbIcAAwAAbIcAAwAAbMfl30ICAKA81H90RWV3ATbGDAwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdlwPM5s2b1aNHD4WGhsrNzU3Lli1zWm+M0fjx41WnTh35+PioS5cu2rdvn1Od48ePKy4uTn5+fgoICNDgwYN16tQppzpffvml2rVrJ29vb4WFhWnq1Kmu7x0AALgsuRxgTp8+rRYtWmjmzJlFrp86dapeeuklvfbaa9q6dauqVaummJgYnT171qoTFxen3bt3KykpScuXL9fmzZs1ZMgQa31WVpa6du2q8PBwpaSkaNq0aZowYYJmz55dhl0EAACXG09X79C9e3d17969yHXGGL344ot6/PHHddttt0mS/vOf/yg4OFjLli1T37599fXXX2vVqlXavn272rRpI0l6+eWXdcst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6anAwEDG0wUEGFSo+Ph4ffXVV/rkk08quyu28NNPP+mf//ynkpKS5O3tXdndsZX8/Hy1adNGzzzzjCSpVatW+uqrr/Taa69p4MCBldy7S9vixYs1f/58LViwQNdcc41SU1M1YsQIhYaGMna4ZPEVUinVqlVLHh4ehc72SE9PV0hISCX16tI2bNgwLV++XBs2bFDdunWt8pCQEOXk5CgjI8OpPmP5+1dER48e1bXXXitPT095enpq06ZNeumll+Tp6ang4GDGrhh16tRRZGSkU1mTJk108OBBSbLGh9dwYaNHj9ajjz6qvn37qlmzZurfv79GjhypxMRESYydK0ozViEhITp69KjT+nPnzun48eOMpwsIMKXk5eWl1q1ba926dVZZfn6+1q1bp+jo6Ers2aXHGKNhw4Zp6dKlWr9+vSIiIpzWt27dWlWqVHEay7179+rgwYN/+bHs3Lmzdu3apdTUVGtp06aN4uLirP8zdkW78cYbC52u/+233yo8PFySFBERoZCQEKexy8rK0tatW//yY/fbb7/J3d3548DDw0P5+fmSGDtXlGasoqOjlZGRoZSUFKvO+vXrlZ+fr6ioqD+9z7ZV2UcR28nChQuNw+Ewc+fONXv27DFDhgwxAQEBJi0trbK7dkl58MEHjb+/v9m4caM5cuSItfz2229WnaFDh5p69eqZ9evXmx07dpjo6GgTHR1dib2+dJ1/FpIxjF1xtm3bZjw9Pc3kyZPNvn37zPz5803VqlXNvHnzrDpTpkwxAQEB5v333zdffvmlue222/6ypwKfb+DAgeaKK66wTqN+7733TK1atcwjjzxi1WHs/ufkyZNm586dZufOnUaSeeGFF8zOnTvNjz/+aIwp3Vh169bNtGrVymzdutV88sknplGjRpxG7SICjItefvllU69ePePl5WWuv/56s2XLlsru0iVHUpHLnDlzrDpnzpwx//jHP0yNGjVM1apVzd///ndz5MiRyuv0JezCAMPYFe/DDz80TZs2NQ6HwzRu3NjMnj3baX1+fr554oknTHBwsHE4HKZz585m7969ldTbS0dWVpb55z//aerVq2e8vb3NlVdeacaNG2eys7OtOozd/2zYsKHI97iBAwcaY0o3VseOHTP9+vUzvr6+xs/PzwwaNMicPHmyEvbGvtyMOe9SiwAAADbAMTAAAMB2CDAAAMB2CDAAAMB2CDAAAMB2CDAAAMB2CDAAAMB2CDAAAMB2CDAAAMB2CDAAAMB2CDAAAMB2CDAAAMB2/h8IGZHLPSQcBAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGzCAYAAAD9pBdvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABALklEQVR4nO3deVxV1eL///cB8YAyOIMDAQ45T2Eq3hQtDY1MbuWUOZDacLUyrXuzbjlVWGpqZZqV2nXIMfVehxQH9FNSOX5zSNNyTlBLQUnRYP3+6MfJwyQHwS34ej4e+6FnnbX3XmuvM7zZZ+1zbMYYIwAAAIu4Wd0AAABweyOMAAAASxFGAACApQgjAADAUoQRAABgKcIIAACwFGEEAABYijACAAAsRRgBAACWIozcAoKDg9WvXz+rm1HsjRs3TtWrV5e7u7uaNGlidXMkWTv2bdu2Vdu2bS3Zd158+eWXatKkiTw9PWWz2XT+/Hmrm+Rk5MiRstlsBba9uLg42Ww2xcXFFdg2i7KCPr64tRFGCtisWbNks9m0bdu2bO9v27atGjRocMP7WbVqlUaOHHnD27ldrF27Vv/85z/1t7/9TTNnztRbb72Vp/W6desmm82mf/3rX/ne95YtWzRy5EhL3kz37dunkSNH6siRIzd93zfi119/Vbdu3eTl5aUpU6Zo9uzZKl26dKHtL+N5m7F4enqqSpUqioiI0HvvvacLFy4U2L4+/PBDzZo1q8C2V9QEBwc7Hetrl44dO1rdvEIzb948TZo0Kc/1165dq/79+6tBgwZyd3dXcHBwobXtlmBQoGbOnGkkma1bt2Z7f3h4uKlfv75T2eXLl82VK1dc2s+gQYMMw5d3//rXv4ybm5tJTU3N8zpJSUnG09PTBAcHm8DAQJOenp6vfY8bN85IMocPH85yX37G3hWLFi0ykszGjRuz3JeamurS8biZVq9ebSSZ2NjYm7K/jOft6NGjzezZs82MGTPMW2+9Ze6//35js9lMUFCQ+X//7/85rXP16lVz6dIll/dVv359Ex4enqU8LS3NXLp0yaSlpeW3G0VCUFCQadKkiZk9e3aWZf369Y56I0aMKFavcZGRkSYoKCjP9fv27Ws8PT1Nq1atTLVq1VxatygqYWEOwv/Pbrdb3QSXpaSkFOpfqgXt9OnT8vLyUsmSJfO8zpIlS5SWlqYZM2bo3nvv1ebNmxUeHl6g7bJy7F05Fjfb6dOnJUllypQpsG3m5THbqVMnNWvWzHF7+PDh2rBhgx588EE99NBD+uGHH+Tl5SVJKlGihEqUKLiXUDc3N3l6ehbY9gpaenq6rly5UiBtrFq1qh5//PECaFXx9dZbb+njjz+Wh4eHHnzwQe3Zs8fqJhUqPqa5BWSeN3D16lWNGjVKtWrVkqenp8qXL6977rlHsbGxkqR+/fppypQpkuR0ijNDSkqKhg0bpsDAQNntdtWuXVvjx4+XyfQDzZcuXdJzzz2nChUqyMfHRw899JBOnjwpm83m9BFQxme3+/bt02OPPaayZcvqnnvukSR9//336tevn6pXry5PT08FBAToiSee0K+//uq0r4xt/Pjjj3r88cfl5+enihUr6rXXXpMxRsePH1eXLl3k6+urgIAATZgwIU/H7o8//tCYMWNUo0YN2e12BQcH65VXXlFqaqqjjs1m08yZM5WSkuI4Vnk5TT537lx16NBB7dq1U926dTV37txs6+3fv1/dunVTxYoV5eXlpdq1a+vVV1919Pull16SJIWEhDj2n/GxybVjv23bNtlsNn322WdZ9rFmzRrZbDatWLFCknT06FH94x//UO3ateXl5aXy5cura9euTh/HzJo1S127dpUktWvXzrHvjDkJ2c0ZOX36tPr37y9/f395enqqcePGWdpz5MgR2Ww2jR8/XtOnT3cc+7vvvltbt251qpuQkKDo6GhVq1ZNdrtdlStXVpcuXXL92Kht27bq27evJOnuu++WzWZzen4sWrRIoaGh8vLyUoUKFfT444/r5MmTTtvo16+fvL299dNPP+mBBx6Qj4+PevXqleM+c3Pvvffqtdde09GjRzVnzhxHeU5zGubMmaPmzZurVKlSKlu2rNq0aaO1a9dK+nO89+7dq02bNjnGI2MMcpoz4kp/T548qaioKHl7e6tixYp68cUXlZaW5lR3/PjxatWqlcqXLy8vLy+FhoZq8eLFWfphs9k0ePBgzZ07V/Xr15fdbtfq1asVHBysLl26ZKl/+fJl+fn56amnnsrTcc2vOXPmOI5HuXLl1KNHDx0/ftypTsbH4d9//73Cw8NVqlQp1axZ09HPTZs2qUWLFo7n67p167Ls5+TJk3riiSfk7+8vu92u+vXra8aMGU51MsZs4cKFevPNN1WtWjV5enrqvvvu06FDh5zas3LlSh09etQx7tf72KVKlSry8PDI51EqejgzUkiSkpJ09uzZLOVXr1697rojR45UTEyMBgwYoObNmys5OVnbtm3Tjh071KFDBz311FP65ZdfFBsbq9mzZzuta4zRQw89pI0bN6p///5q0qSJ1qxZo5deekknT57UxIkTHXX79eunhQsXqnfv3mrZsqU2bdqkyMjIHNvVtWtX1apVS2+99ZYj2MTGxurnn39WdHS0AgICtHfvXk2fPl179+7VN998k+XFunv37qpbt67Gjh2rlStX6o033lC5cuX00Ucf6d5779Xbb7+tuXPn6sUXX9Tdd9+tNm3a5HqsBgwYoM8++0yPPvqohg0bpm+//VYxMTH64YcftHTpUknS7NmzNX36dH333Xf65JNPJEmtWrXKdbu//PKLNm7c6Hgj7tmzpyZOnKgPPvjA6YzC999/r9atW8vDw0NPPvmkgoOD9dNPP+l///uf3nzzTT388MP68ccf9fnnn2vixImqUKGCJKlixYpZ9tmsWTNVr15dCxcudLwZZ1iwYIHKli2riIgISdLWrVu1ZcsW9ejRQ9WqVdORI0c0depUtW3bVvv27VOpUqXUpk0bPffcc3rvvff0yiuvqG7dupLk+DezS5cuqW3btjp06JAGDx6skJAQLVq0SP369dP58+f1/PPPO9WfN2+eLly4oKeeeko2m03vvPOOHn74Yf3888+OF9FHHnlEe/fu1bPPPqvg4GCdPn1asbGxOnbsWI4vxq+++qpq166t6dOna/To0QoJCVGNGjUk/RmwoqOjdffddysmJkaJiYmaPHmyvv76a+3cudPpTMoff/yhiIgI3XPPPRo/frxKlSqV7f7yonfv3nrllVe0du1aDRw4MMd6o0aN0siRI9WqVSuNHj1aJUuW1LfffqsNGzbo/vvv16RJk/Tss8/K29vbEVj9/f1z3J4r/U1LS1NERIRatGih8ePHa926dZowYYJq1KihZ555xlFv8uTJeuihh9SrVy9duXJF8+fPV9euXbVixYosz/8NGzZo4cKFGjx4sCpUqKCQkBA9/vjjeuedd/Tbb7+pXLlyjrr/+9//lJycnKczHlevXs329bF06dKOM0/ZefPNN/Xaa6+pW7duGjBggM6cOaP3339fbdq0yXI8zp07pwcffFA9evRQ165dNXXqVPXo0UNz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e/jhh+Xu7q5Ro0ZleewbY677sW5eubu765FHHtGSJUuy/UPjzJkz+dpu6dKl8/0R6u2AMyO3oHr16qlt27YKDQ1VuXLltG3bNi1evFiDBw921AkNDZUkPffcc4qIiHC8GHTu3Fnt2rXTq6++qiNHjqhx48Zau3atli9friFDhjgukQwNDdUjjzyiSZMm6ddff3Vc2vvjjz9KyluK9/X1VZs2bfTOO+/o6tWrqlq1qtauXavDhw8XwlHJqnHjxurbt6+mT5+u8+fPKzw8XN99950+++wzRUVFqV27di5vc+7cuXJ3d8/xhf6hhx7Sq6++qvnz52vo0KF67733dM899+iuu+7Sk08+qZCQEB05ckQrV67Url27JP01Vq+++qp69OghDw8Pde7cOdcv4Orevbtef/11eXp6qn///lk+bnjwwQc1e/Zs+fn5qV69eoqPj9e6detUvnx5p3pNmjSRu7u73n77bSUlJclut+vee+/Ndu7Dk08+qY8++kj9+vXT9u3bFRwcrMWLFzv+6s08D+l6fvzxR913333q1q2b6tWrpxIlSmjp0qVKTEzM1xuXh4eH3n77bUVHRys8PFw9e/Z0XOoaHByc7Udqrlq9erX279+vP/74Q4mJidqwYYNiY2MVFBSk//73v7l+4VfNmjX16quvasyYMWrdurUefvhh2e12bd26VVWqVFFMTIykPx8PU6dO1RtvvKGaNWuqUqVKWc58FFZ/IyMj9e6776pjx4567LHHdPr0aU2ZMkU1a9bU999/7/K2ypcvr0WLFqlTp065zqfJ7OTJk9meGfP29lZUVFS269SoUUNvvPGGhg8friNHjigqKko+Pj46fPiwli5dqieffFIvvviiS33IydixY7Vx40a1aNFCAwcOVL169fTbb79px44dWrdunX777TeXtxkaGqoFCxZo6NChuvvuu+Xt7a3OnTvnWP/777/Xf//7X0l/nrFOSkrSG2+8IenP177c1i2SbvblO8Vdfr4OPvPlnW+88YZp3ry5KVOmjPHy8jJ16tQxb775ptPXhv/xxx/m2WefNRUrVjQ2m83pErgLFy6YF154wVSpUsV4eHiYWrVqmXHjxmW55C4lJcUMGjTIlCtXznh7e5uoqCjHZXvXXmqbcYndmTNnsvTnxIkT5u9//7spU6aM8fPzM127djW//PJLjpcHZ95GTpfcZnecsnP16lUzatQoExISYjw8PExgYKAZPny4uXz5cp72c60rV66Y8uXLm9atW+daLyQkxOkSzz179jiOgaenp6ldu7Z57bXXnNYZM2aMqVq1qnFzc3O6zDfz2Gc4ePCg43LHr776Ksv9586dM9HR0aZChQrG29vbREREmP3792e7vY8//thUr17duLu7O106mvnSXmOMSUxMdGy3ZMmSpmHDhk6XPBrz16W92V2ye+24nz171gwaNMjUqVPHlC5d2vj5+ZkWLVqYhQsXZj2omeT2PFqwYIFp2rSpsdvtply5cqZXr17mxIkTTnVcvZQ78yX5JUuWNAEBAaZDhw5m8uTJjsuar5XT15XPmDHD0b6yZcua8PBwp6+1T0hIMJGRkcbHx8dIcoxB5kt7C6K/2bXx008/NbVq1TJ2u93UqVPHzJw5M9t6ksygQYNyPW7/+Mc/slxCez25Xdp77eWrOR3fJUuWmHvuuceULl3alC5d2tSpU8cMGjTIHDhwwFEnp9ePoKCgbL82Ibu+JiYmmkGDBpnAwEDj4eFhAgICzH333WemT5/uqJMxZosWLXJaN+M5cu1z5+LFi+axxx4zZcqUydLX7OT2NRHX+9qDoshmDDNs8Jddu3apadOmmjNnTr6/sRLA7eGFF17Qp59+qoSEhBv6UjmAOSO3sUuXLmUpmzRpktzc3K77zacAbm+XL1/WnDlz9MgjjxBEcMOYM3Ibe+edd7R9+3a1a9dOJUqU0OrVq7V69Wo9+eSTWa7FBwDpz+/YWLdunRYvXqxff/01y88EAPlBGLmNtWrVSrGxsRozZowuXryoO+64QyNHjnT8ZgYAZLZv3z716tVLlSpV0nvvvZfrZcxAXjFnBAAAWIo5IwAAwFKEEQAAYKkiMWckPT1dv/zyi3x8fPhKXQAAighjjC5cuKAqVark+ltRRSKM/PLLL1zdAQBAEXX8+PFcf0W7SISRjK+hPn78uHx9fS1uDQAAyIvk5GQFBgZe9+ckikQYyfhoxtfXlzACAEARc70pFkxgBQAAliKMAAAASxFGAACApQgjAADAUoQRAABgKcIIAACwFGEEAABYijACAAAsRRgBAACWIowAAABL3VAYGTt2rGw2m4YMGZJrvUWLFqlOnTry9PRUw4YNtWrVqhvZLQAAKEbyHUa2bt2qjz76SI0aNcq13pYtW9SzZ0/1799fO3fuVFRUlKKiorRnz5787hoAABQj+QojFy9eVK9evfTxxx+rbNmyudadPHmyOnbsqJdeekl169bVmDFjdNddd+mDDz7IV4MBAEDxkq8wMmjQIEVGRqp9+/bXrRsfH5+lXkREhOLj43NcJzU1VcnJyU4LAAAonkq4usL8+fO1Y8cObd26NU/1ExIS5O/v71Tm7++vhISEHNeJiYnRqFGjXG1avgS/vPKm7KcgHRkbaXUTAAAoMC6dGTl+/Lief/55zZ07V56enoXVJg0fPlxJSUmO5fjx44W2LwAAYC2Xzoxs375dp0+f1l133eUoS0tL0+bNm/XBBx8oNTVV7u7uTusEBAQoMTHRqSwxMVEBAQE57sdut8tut7vSNAAAUES5dGbkvvvu0+7du7Vr1y7H0qxZM/Xq1Uu7du3KEkQkKSwsTOvXr3cqi42NVVhY2I21HAAAFAsunRnx8fFRgwYNnMpKly6t8uXLO8r79OmjqlWrKiYmRpL0/PPPKzw8XBMmTFBkZKTmz5+vbdu2afr06QXUBQAAUJQV+DewHjt2TKdOnXLcbtWqlebNm6fp06ercePGWrx4sZYtW5Yl1AAAgNuTzRhjrG7E9SQnJ8vPz09JSUny9fUt0G1zNQ0AAIUjr+/f/DYNAACwFGEEAABYijACAAAsRRgBAACWIowAAABLEUYAAIClCCMAAMBShBEAAGApwggAALAUYQQAAFiKMAIAACxFGAEAAJYijAAAAEsRRgAAgKUIIwAAwFKEEQAAYCnCCAAAsBRhBAAAWIowAgAALEUYAQAAliKMAAAASxFGAACApQgjAADAUoQRAABgKcIIAACwFGEEAABYijACAAAsRRgBAACWIowAAABLEUYAAIClCCMAAMBShBEAAGApwggAALCUS2Fk6tSpatSokXx9feXr66uwsDCtXr06x/qzZs2SzWZzWjw9PW+40QAAoPgo4UrlatWqaezYsapVq5aMMfrss8/UpUsX7dy5U/Xr1892HV9fXx04cMBx22az3ViLAQBAseJSGOncubPT7TfffFNTp07VN998k2MYsdlsCggIyH8LAQBAsZbvOSNpaWmaP3++UlJSFBYWlmO9ixcvKigoSIGBgerSpYv27t173W2npqYqOTnZaQEAAMWTy2Fk9+7d8vb2lt1u19NPP62lS5eqXr162datXbu2ZsyY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KikpSW3btlXlypUdy4IFCxx1jh07plOnTjlut2rVSvPmzdP06dPVuHFjLV68WMuWLct10isAALh9uHRmJC9fSRIXF5elrGvXruratasruwIAALcJfpsGAABYijACAAAsRRgBAACWIowAAABLEUYAAIClCCMAAMBShBEAAGApwggAALAUYQQAAFiKMAIAACxFGAEAAJYijAAAAEsRRgAAgKUIIwAAwFKEEQAAYCnCCAAAsBRhBAAAWIowAgAALEUYAQAAliKMAAAASxFGAACApQgjAADAUoQRAABgKcIIAACwFGEEAABYijACAAAsRRgBAACWIowAAABLEUYAAIClCCMAAMBShBEAAGApwggAALAUYQQAAFjK5TCyefNmde7cWVWqVJHNZtOyZctyrR8XFyebzZZlSUhIyG+bAQBAMeJyGElJSVHjxo01ZcoUl9Y7cOCATp065VgqVark6q4BAEAxVMLVFTp16qROnTq5vKNKlSqpTJkyLq8HAACKt5s2Z6RJkyaqXLmyOnTooK+//jrXuqmpqUpOTnZaAABA8VToYaRy5cqaNm2alixZoiVLligwMFBt27bVjh07clwnJiZGfn5+jiUwMLCwmwkAACxiM8aYfK9ss2np0qWKiopyab3w8HDdcccdmj17drb3p6amKjU11XE7OTlZgYGBSkpKkq+vb36bm63gl1cW6PZuhiNjI61uAgAA15WcnCw/P7/rvn+7PGekIDRv3lxfffVVjvfb7XbZ7fab2CIAAGAVS75nZNeuXapcubIVuwYAALcYl8+MXLx4UYcOHXLcPnz4sHbt2qVy5crpjjvu0PDhw3Xy5En95z//kSRNmjRJISEhql+/vi5fvqxPPvlEGzZs0Nq1awuuFwAAoMhyOYxs27ZN7dq1c9weOnSoJKlv376aNWuWTp06pWPHjjnuv3LlioYNG6aTJ0+qVKlSatSokdatW+e0DQAAcPu6oQmsN0teJ8DkBxNYAQAoHHl9/+a3aQAAgKUIIwAAwFKEEQAAYCnCCAAAsBRhBAAAWIowAgAALEUYAQAAliKMAAAASxFGAACApQgjAADAUoQRAABgKcIIAACwFGEEAABYijACAAAsRRgBAACWIowAAABLEUYAAIClCCMAAMBShBEAAGApwggAALAUYQQAAFiKMAIAACxFGAEAAJYijAAAAEsRRgAAgKUI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jz7SmDFjLGzZzfHpp5+qYcOGat68uVN5cRvn2928efM0atQoLV++3GnuRKdOnRz/b9SokVq0aKGgoCAtXLhQ/fv3t6KpN6x27dqqXbu243arVq30008/aeLEiZo9e7aFLbs5PvvsM5UpU0ZRUVFO5cVxrDO75c+MVKhQQe7u7kpMTHQqT0xMVEBAQLbrBAQE5Fo/419Xtnkz5afPGcaPH6+xY8dq7dq1atSoUa51q1evrgoVKujQoUM33OYbdSN9zuDh4aGmTZs6+lOcxzklJUXz58/P0wvRrTTO+ZHT89nX11deXl4F8ti5Vc2fP18DBgzQwoULs3xUlVmZMmV05513Ftlxzknz5s0dfSrOY22M0YwZM9S7d2+VLFky17rFcaxv+TBSsmRJhYaGav369Y6y9PR0rV+/3umv4muFhYU51Zek2NhYR/2QkBAFBAQ41UlOTta3336b4zZvpvz0WfrzypExY8boyy+/VLNmza67nxMnTujXX39V5cqVC6TdNyK/fb5WWlqadu/e7ehPcR1n6c9L11NTU/X4449fdz+30jjnx/WezwXx2LkVff7554qOjtbnn3/udOl2Ti5evKiffvqpyI5zTnbt2uXoU3Eda0natGmTDh06lKc/MIrlWFs9gzYv5s+fb+x2u5k1a5bZt2+fefLJJ02ZMmVMQkKCMcaY3r17m5dfftlR/+uvvzYlSpQw48ePNz/88IMZMWKE8fDwMLt373bUGTt2rClTpoxZvny5+f77702XLl1MSEiIuXTp0k3vX3Zc7fPYsWNNyZIlzeLFi82pU6ccy4ULF4wxxly4cMG8+OKLJj4+3hw+fNisW7fO3HXXXaZWrVrm8uXLlvQxM1f7PGrUKLNmzRrz008/me3bt5sePXoYT09Ps3fvXked4jbOGe655x7TvXv3LOVFYZwvXLhgdu7caXbu3GkkmXfffdfs3LnTHD161BhjzMsvv2x69+7tqP/zzz+bUqVKmZdeesn88MMPZsqUKcbd3d18+eWXjjrXO45Wc7XPc+fONSVKlDBTpkxxej6fP3/eUWfYsGEmLi7OHD582Hz99demffv2pkKFCub06dM3vX85cbXfEydONMuWLTMHDx40u3fvNs8//7xxc3Mz69atc9QpbmOd4fHHHzctWrTIdptFYaxvVJEII8YY8/7775s77rjDlCxZ0jRv3tx88803jvvCw8NN3759neovXLjQ3HnnnaZkyZKmfv36ZuXKlU73p6enm9dee834+/sbu91u7rvvPnPgwIGb0ZU8c6XPQUFBRlKWZcSIEcYYY37//Xdz//33m4oVKxoPDw8TFBRkBg4ceMs8gTO40uchQ4Y46vr7+5sHHnjA7Nixw2l7xW2cjTFm//79RpJZu3Ztlm0VhXHOuHwz85LRz759+5rw8PAs6zRp0sSULFnSVK9e3cycOTPLdnM7jlZztc/h4eG51jfmz8ubK1eubEqWLGmqVq1qunfvbg4dOnRzO3Ydrvb77bffNjVq1DCenp6mXLlypm3btmbDhg1ZtlucxtqYP79ywMvLy0yfPj3bbRaFsb5RNmOMKeSTLwAAADm65eeMAACA4o0wAgAALEUYAQAAliKMAAAASxFGAACApQgjAADAUoQRAABgKcIIAACwFGEEAABYijACAAAsRRgBAACW+v8Am7R/6ffszR4AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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87WoGbbDhw+bhIQEExISYnx8fEzz5s3NW2+95dIn/z5bsGCBmThxornuuuuMr6+v6dq1q9m7d69LPQXv95LOglzsgw8+MJLMBx98UOrrXu2Y+XCTzMxMnThxolB7bm7uZa87duxYpaSk6KGHHtKNN96orKwsbd++XV9++aVuu+02/f73v9eRI0e0Zs0azZkzx+W6xhj16dNHGzZs0NChQ9WmTRutWrVKf/rTn/Tf//5XU6dOdfYdMmSIFi5cqPvvv1833XSTNm3apF69ehVb1z333KNGjRrphRdekDFGkrRmzRr95z//UUJCgsLCwrRr1y7NnDlTu3bt0tatWwvtMDZgwAA1a9ZMkyZN0vLlyzVx4kQFBwfrzTffVNeuXfXiiy9q7ty5evzxx9W+fXvFxsZecls99NBDeuedd9S/f3+NHj1an3/+uVJSUvTNN99oyZIlkqQ5c+Zo5syZ+uKLL/T3v/9dkvTb3/72kuMeOXJEGzZs0DvvvCNJGjRokKZOnarXXnvNZcbgq6++UseOHVW1alUNGzZMUVFR2r9/vz788EM9//zzuvvuu/Xdd9/pn//8p6ZOnapatWpJkmrXrl1one3atVP9+vW1cOFCxcfHu1y2YMECXXvttYqLi5Mkbdu2TZ999pkGDhyounXrKi0tTTNmzFDnzp21e/duXXPNNYqNjdVjjz2mV155RU899ZSaNWsmSc5/C/rpp5/UuXNn7du3T8OHD1d0dLQWLVqkIUOG6PTp0/rjH//o0n/evHk6c+aMfv/738vhcGjy5Mm6++679Z///EdVq1aVJPXr10+7du3SiBEjFBUVpWPHjmnNmjU6ePCgoqKiiqzj6aefVpMmTTRz5kyNHz9e0dHRatCggaRf9s1ISEhQ+/btlZKSooyMDL388sv69NNP9a9//ctlpuTnn39WXFycbrnlFr300ku65pprilxfSdx///166qmntHr1aj388MPF9hs3bpzGjh2r3/72txo/frx8fHz0+eefa/369erevbumTZumESNGyN/fX08//bQkKTQ0tNjxSnN7L1y4oLi4OMXExOill17S2rVr9Ze//EUNGjTQo48+6uz38ssvq0+fPho8eLDOnz+v+fPn65577tFHH31U6Pm/fv16LVy4UMOHD1etWrUUHR2t3/3ud5o8ebJ++OEHBQcHO/t++OGHysrKKtGM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t99+u9LT07VgwQJn288//6xXX31V/v7+pT7HyY8//qhz5865tDVo0EABAQEuj+WSateunUJCQvTGG2+4XH/FihX65ptvynR/l8T69es1YcIERUdHa/DgwcX269u3r7y8vDR+/PhCs08FHw8luT/K4/Z6e3vL4XC4PE7S0tK0dOnSUo91//33a/fu3frTn/4kb2/vQgHZ3e6++255e3tr3LhxhR77xpjLfk1bUt7e3urXr58WL15c5AeL48ePl2nc6tWrl+or0c2bN2vgwIGKjY3V3Llz3TaLd7Vi5uMq0Lx5c3Xu3Flt27ZVcHCwtm/frvfee0/Dhw939mnbtq0k6bHHHlNcXJzzyd+7d2916dJFTz/9tNLS0tS6dWutXr1ay5Yt08iRI52HLLZt21b9+vXTtGnTdPLkSeehtt99952kkqX0GjVqKDY2VpMnT1Zubq6uu+46rV69WgcOHCiHrVJY69atFR8fr5kzZ+r06dPq1KmTvvjiC73zzjvq27evunTpUuox586dK29v72Jf2Pv06aOnn35a8+fPV1JSkl555RXdcsstuuGGGzRs2DBFR0crLS1Ny5cvV2pqqqT/3VdPP/20Bg4cqKpVq6p3796XPOHVgAEDNGbMGPn5+Wno0KGFXnjuuOMOzZkzR4GBgWrevLm2bNmitWvXqmbNmi792rRpI29vb7344ovKzMyUr6+vunbtWuS+C8OGDdObb76pIUOGaMeOHYqKitJ7773n/FRbcD+iy/nuu+9066236t5771Xz5s1VpUoVLVmyRBkZGWV6o6patapefPFFJSQkqFOnTho0aJDz0NOoqKgivyIrrRUrVujbb7/Vzz//rIyMDK1fv15r1qxRZGSkPvjgg0ueYKthw4Z6+umnNWHCBHXs2FF33323fH19tW3bNoWHhyslJUXSL4+HGTNmaOLEiWrYsKFCQkIKzWyU1+3t1auX/vrXv6pHjx667777dOzYMU2fPl0NGzbUV199VeqxatasqUWLFqlnz56X3B+moP/+979Fznz5+/urb9++RV6nQYMGmjhxopKTk5WWlqa+ffsqICBABw4c0JIlSzRs2DA9/vjjpboNxZk0aZI2bNigmJgYPfzww2revLl++OEHffnll1q7dq1++OGHUo/Ztm1bLViwQElJSWrfvr38/f3Vu3fvIvt+//336tOnjxwOh/r3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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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muPcunWrwsLCzOfr559/XmQ5J0+e1KBBgxQYGCh3d3c1btxY7733nl2fgm22YsUKTZs2TTVq1JCHh4e6dOmiH3/80a6eTz/91NyLa7PZiuyNLYmC+5S148EcgT0wZUhmZqbOnDlTpD03N/cP7ztx4kQlJCToiSeeUJs2bZSVlaUdO3Zo165d+stf/qKnnnpKp06dUlJSkt5//327+xqGoV69emnLli0aPHiwmjdvrs8++0yjR4/WyZMn9frrr5t9BwwYoBUrVuixxx7TPffco61btyoqKuqadfXt21f16tXTyy+/bIahpKQk/fzzzxo4cKCCgoK0Z88eLVy4UHv27NE333xT5AW+f//+atiwoaZPn65PP/1UU6dOlb+/v95++23dd999euWVV5SYmKhRo0apdevW6tChw3XX1RNPPKElS5booYce0siRI7V9+3YlJCRo3759Wr16tSTp/fff18KFC/Xtt9/q73//uySpbdu2153vqVOntGXLFvPN++GHH9brr7+uN998027Pxffff6/27durYsWKGjJkiEJCQvTTTz9p7dq1mjZtmh588EEdPHhQ//jHP/T666+ratWqkqRq1aoVWWarVq10xx13aMWKFeYbeIHly5ercuXKioyMlCSlpKTo66+/VnR0tGrUqKEjR45o/vz56tSpk/bu3avbbrtNHTp00LPPPqs5c+boxRdfVMOGDSXJ/Lew3377TZ06ddKPP/6o+Ph4hYaGauXKlRowYIDOnz+v5557zq7/smXLdOHCBT311FOy2WyaMWOGHnzwQf3888/mV2J9+vTRnj17NHToUIWEhCgjI0NJSUk6duzYNV/Ax40bp/r162vhwoXmVzp16tSR9N+velq3bq2EhASlp6frjTfe0FdffaXvvvvObo/NlStXFBkZqXbt2mnWrFm67bbbil1eSTz22GN68cUXtXHjRj355JPX7Ddp0iRNnDhRbdu21eTJk+Xm5qbt27dr8+bNuv/++zV79mwNHTpUXl5eZsgNDAy85vxuZLx5eXmKjIxUWFiYZs2apc8//1yvvvqq6tSpo6efftrs98Ybb6hXr16KiYnR5cuX9cEHH6hv375at25dkef/5s2btWLFCsXHx6tq1aoKDQ3Vo48+qhkzZujs2bPy9/c3+65du1ZZWVkl2rOSm5tb7OtjpUqVzD1cxZk2bZrGjx+v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Qwe99957OnbsmN18rl4n19pW19KwYUM1bdpUy5cv1/Lly1W9evUiZ2O5uroWWe9z584tcsrsjSy7e/fuSktL0/Lly822K1euaO7cufLy8rrha+D8+uuvunTpkl1bnTp15O3tbfdYLqlWrVopICBACxYssLv/+vXrtW/fvpva3iWxefNmTZkyRaGhodc9Fbt3795ycXHR5MmTi+wFK/x4KMn2KI3xurq6ymaz2T1Ojhw5ojVr1tzwvB577DHt3btXo0ePlqura6lfl+TBBx+Uq6trsRe3M/7/s3UcwdXVVX369NGqVauK/XBys1fCrVSpUomDR3Z2tn799dci7atWrdK5c+eKPTzB6tgDU040atRInTp1UsuWLeXv768dO3boww8/VHx8vNmnZcuWkqRnn31WkZGR5gtIz5491blzZ40bN05HjhxRs2bNtHHjRn388ccaNmyYeTpqy5Yt1adPH82ePVu//PKLeRr1wYMHJZXs04KPj486dOigGTNmKDc3V7fffrs2btyow4cPl8JaKapZs2aKjY3VwoULdf78eXXs2FHffvutlixZot69e6tz5843PM/ExES5urpe882hV69eGjdunD744AONGDFCc+bMUbt27XT33XdryJAhCg0N1ZEjR/Tpp58qNTVV0n+31bhx4xQdHa2KFSuqZ8+e172oWv/+/TVhwgR5eHho8ODBRb4K6dGjh95//335+vqqUaNGSk5O1ueff64qVarY9WvevLlcXV31yiuvKDMzU+7u7rrvvvuKPZZjyJAhevvttzVgwADt3LlTISEh+vDDD81P14WPq/ojBw8eVJcuXdSvXz81atRIFSpU0OrVq5Wenn5Tb3YVK1bUK6+8ooEDB6pjx456+OGHzdOKQ0JCiv2670atX79e+/fv15UrV5Senq7NmzcrKSlJtWvX1ieffHLdi7jVrVtX48aN05QpU9S+fXs9+OCDcnd3V0pKioKDg5WQkCDp98fD/PnzNXXqVNWtW1cBAQFF9rCU1nijoqL02muvqWvXrnrkkUeUkZGhefPmqW7duvr+++9veF5VqlTRypUr1a1bt+seH1TYyZMni90D5+Xlpd69exd7nzp16mjq1KkaO3asjhw5ot69e8vb21uHDx/W6tWrNWTIEI0aNeqGxnAt06dP15YtWxQWFqYnn3xSjRo10tmzZ7Vr1y59/vnn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AJZDgAEAAJZDgAEAAJbj8NOo8eeU1hlOnN0EAChP2AMDAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAshwADAAAsp9QDzPTp02Wz2TRs2DCz7dKlS4qLi1OVKlXk5eWlPn36KD093e5+x44dU1RUlG677TYFBARo9OjRunLlSmmXCwAALKBUA0xKSorefvtt3XXXXXbtw4cP19q1a7Vy5Upt3bpVp06d0oMPPmhOz8vLU1RUlC5fvqyvv/5aS5Ys0eLFizVhwoTSLBcAAFhEqQWYixcvKiYmRu+8844qV65stmdmZurdd9/Va6+9pvvuu08tW7bUokWL9PXXX+ubb76RJG3cuFF79+7V0qVL1bx5c3Xr1k1TpkzRvHnzdPny5dIqGQAAWESpBZi4uDhFRUUpIiLCrn3nzp3Kzc21a2/QoIFq1aql5ORkSVJycrKaNm2qwMBAs09kZKSysrK0Z8+eYpeXk5OjrKwsuxsAACifKpTGTD/44APt2rVLKSkpRaalpaXJzc1Nfn5+du2BgYFKS0sz+1wdXgqmF0wrTkJCgiZNmuSA6gEAQFnn8D0wx48f13PPPafExER5eHg4evbXNHbsWGVmZpq348eP37JlAwCAW8vhAWbnzp3KyMjQ3XffrQoVKqhChQraunWr5syZowoVKigwMFCXL1/W+fPn7e6Xnp6uoKAgSVJQUFCRs5IK/i7oU5i7u7t8fHzsbgAAoHxyeIDp0qWLdu/erdTUVPPWqlUrxcTEmP+vWLGiNm3aZN7nwIEDOnbsmMLDwyVJ4eHh2r17tzIyMsw+SUlJ8vHxUaNGjRxdMgAAsBiHHwPj7e2tJk2a2LVVqlRJVapUMdsHDx6sESNGyN/fXz4+Pho6dKjCw8N1zz33SJLuv/9+NWrUSI899phm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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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L7r//vuLuKU8C0dQ/kTp6ek6depUnvKsrKwbPnfUqFFKSkrSk08+qSZNmshut2vLli3atm2bHnzwQT399NM6fvy4kpOT9dFHHzk91zAMderUSatXr9aAAQNUv359ffvtt3rhhRd07Ngxvf322466ffv21SeffKLHH39c99xzj9auXasOHToU2K9u3bqpWrVqev311x1hJzk5WT///LP69eun8PBw7dy5U7NmzdLOnTu1cePGPF/gPXr0UM2aNTVhwgR99dVXGjdunEJCQvT3v/9dDzzwgN544w3NmzdPzz//vBo3bqzmzZtfd1s9+eST+vDDD/Xoo49q+PDh2rRpk5KSkrR7924tXrxYkvTRRx9p1qxZ+uGHH/TPf/5TknTvvfdet93jx49r9erVjp1zr1699Pbbb+vdd991OvKwfft23X///SpRooQGDhyoqKgoHThwQEuXLtX48ePVpUsX/fTTT/r444/19ttvq0yZMpKksmXL5llmo0aNVLlyZX3yySeOHXSuhQsXqnTp0oqNjZX0+ymQ9evXq2fPnqpQoYIOHTqkGTNmqGXLltq1a5dKliyp5s2ba8iQIZo6dapefvll1axZU5Ic/17rt99+U8uWLbV//34NGjRI0dHRWrRokfr27atz587pueeec6o/f/58nT9/Xk8//bQsFosmTpyoLl266Oeff1aJEiUkSV27dtXOnTs1ePBgRUVF6cSJE0pOTtaRI0cK/IJ+5ZVXVL16dc2aNctxyqVKlSqSfg9d/fr1U+PGjZWUlKS0tDS98847+s9//qP//ve/Tkdcrly5otjYWDVr1kyTJ09WyZIl811eYTz++ON6+eWX9d133+mpp54qsN7o0aM1atQo3XvvvRozZox8fX21adMmrVq1Sg899JCmTJmiwYMHKyAgwBFiy5UrV2B7RVnf7OxsxcbGKiYmRpMnT9aKFSv05ptvqkqVKvrrX//qqPfOO++oU6dOiouL0+XLl7VgwQJ169ZNy5Yty/P5X7VqlT755BMNGjRIZcqUUXR0tHr37q2JEyfqzJkzCgkJcdRdunSp7HZ7oY6MZGVl5fv9WKpUKccRqvyMHz9eI0aMUPfu3fXkk0/q5MmTmjZtmpo3b55ne5w9e1YPP/ywevbsqW7dumnGjBnq2bOn5s2bp6FDh+qZZ57RY489pkmTJunRRx/V0aNHFRgYKElKS0vTPffc4whpZcuW1fLlyzVgwADZ7fY8p2kmTJggLy8vPf/880pPT9fEiRMVFxenTZs2Sfr9PZ2enq5ffvnF8R0cEBBww+20aNEirV+/Xrt37/a468iKzECxmz17tiHputNdd93l9JxKlSoZffr0cTyuV6+e0aFDh+suJz4+3sjvJV2yZIkhyRg3bpxT+aOPPmpYLBZj//79hmEYxtatWw1JxtChQ53q9e3b15BkvPbaa46y1157zZBk9OrVK8/yLl68mKfs448/NiQZ69aty9PGwIEDHWVXrlwxKlSoYFgsFmPChAmO8rNnzxr+/v5O2yQ/KSkphiTjySefdCp//vnnDUnGqlWrHGV9+vQxSpUqdd32rjZ58mTD39/fsNvthmEYxk8//WRIMhYvXuxUr3nz5kZgYKBx+PBhp/KcnBzH/ydNmmRIMg4ePJhnOde+9omJiUaJEiWMM2fOOMoyMzON4OBgo3///o6y/Lb7hg0bDEnGv/71L0fZokWLDEnG6tWr89Rv0aKF0aJFC8fjKVOmGJKMuXPnOsouX75sNG3a1AgICHBsi4MHDxqSjNDQUKd+fvHFF4YkY+nSpYZh/P46SjImTZqUZ9k3kvs52rx5s1NfwsLCjNq1axu//fabo3zZsmWGJGPkyJGOsj59+hiSjJdeeumml3ctm81mNGjQwPE49z2da9++fYaXl5fxl7/8xcjOznZ67tXvh7vuustpu+davXq102t1M+s7ZswYpzYbNGhgNGzY0Kns2vfO5cuXjdq1axsPPPCAU7kkw8vLy9i5c6dT+d69ew1JxowZM5zKO3XqZERFRTmta34qVapU4HdjUlKSo9612/fQoUOGt7e3MX78eKf2fvzxR8PHx8epvEWLFoYkY/78+Y6yPXv2ONZp48aNjvJvv/3WkGTMnj3bUTZgwACjfPnyxqlTp5yW1bNnT8Nmszm2Ye5rVrNmTSMzM9NR75133jEkGT/++KOjrEOHDkalSpWuu22udvHiRaNixYpGYmKi07IWLVpU6DY8Cad4/kTTp09XcnJynunqi+wKEhwcrJ07d2rfvn1FXu7XX38tb29vDRkyxKl8+PDhMgxDy5cvl/T7EE5JevbZZ53qDR48uMC2n3nmmTxlV/+1c+nSJZ06dUr33HOPJGnbtm156j/55JOO/3t7e6tRo0YyDEMDBgxwlAcHB6t69er6+eefC+yL9Pu6SlJCQoJTee7Fd1999dV1n3898+bNU4cOHRx/UVWrVk0NGzZ0Os1z8uRJrVu3Tv3791fFihWdnn+zwyN79OihrKwsff75546y7777TufOnVOPHj0cZVdv96ysLJ0+fVpVq1ZVcHBwvtu9ML7++muFh4erV69ejrISJUpoyJAhunDhgtauXZunr6VLl3Y8zj0Enfu65V7zs2bNGp09e/am+nS1LVu26MSJE3r22WedroPo0KGDatSoke/rffWRgz8qICDguqN5lixZopycHI0cOTLPhc838364mfW99jN6//335/kcXf3eOXv2rNLT03X//ffn+75p0aKFatWq5VR25513KiYmxumzcObMGS1fvlxxcXGFWteYmJh8vx+vfu9d6/PPP1dOTo66d++uU6dOOabw8HBVq1ZNq1evdqofEBCgnj17Oh5Xr15dwcHBqlmzpmJiYpz6Iv3vfWsYhj777DN17NhRhmE4LSs2Nlbp6el5tlW/fv2cjqxe+1m4GRMmTFBWVpZefvnlm27Dk3CK50/UpEkTp4vtcpUuXTrfQ5tXGzNmjB555BHdeeedql27ttq2bavHH3+8UOHm8OHDioiIcOxYc+Ue1j98+LDjXy8vL0VHRzvVq1q1aoFtX1tX+v2LafTo0VqwYIHjwsZc6enpeepfuyO32Wzy8/NznPq4uvza61iulbsO1/Y5PDxcwcHBjnUtqt27d+u///2vnnjiiTznkadPny673a6goCDHl48rho3nqlevnmrUqKGFCxc6QtvChQtVpkwZPfDAA456v/32m5KSkjR79mwdO3bM6fqi/LZ7YRw+fFjVqlXLs3O99r2T69rXMjes5IYRq9WqN954Q8OHD1e5cuV0zz336OGHH9YTTzyh8PDwm+qf9PuO5lo1atTQ999/71Tm4+OjChUqFHk5Bblw4YLCwsIKnH/gwAF5eXnl2aHfrKKur5+fX55Th6VLl84TDpctW6Zx48YpJSUlz7Va18rvMy9JTzzxhAYNGqTDhw+rUqVKWrRokbKysvT4448Xat3KlClT5NFZ+/btk2EYqlatWr7zc08r5qpQoUKedbLZbIqMjMxTJv3vfXvy5EmdO3dOs2bN0qxZs/Jd1rXfdTf6LBTVoUOHNGnSJE2fPr1Qp4JuBQQUD9G8eXMdOHBAX3zxhb777jv985//1Ntvv62ZM2c6HYH4s+V3brh79+5av369XnjhBdWvX18BAQHKyclR27ZtlZOTk6e+t7d3ocok5bmotyCuvplT7oWQw4YN07Bhw/LM/+yzz9SvXz+XLvNqPXr00Pjx43Xq1CkFBgbqyy+/VK9evZxGjAwePFizZ8/W0KFD1bRpU9lsNlksFvXs2TPf7V4cCvO6DR06VB07dtSSJUv07bffasSIEUpKStKqVavUoEGDYu2f1Wp12RDuX375Renp6dcN8O5W0OtxtX//+9/q1KmTmjdvrvfee0/ly5dXiRIlNHv2bM2fPz9P/YKuB+nZs6eGDRumefPm6eWXX9bcuXPVqFGjfMOUq+Tk5MhisWj58uX5ruu1O/KCtseN3re5n5/evXvnuRYs17V/LP7R77BrjRw5UnfccYdatmzpuPYkNTVV0u8B6tChQ6pYsWKx3qLgz0ZA8SAhISHq16+f+vXrpwsXLqh58+YaNWqUI6AUtFOuVKmSVqxYofPnzzsdRdmzZ49jfu6/OTk5OnjwoNNfJFcfMbiRs2fPauXKlRo9erTT8LebOTV1M3LXYd++fU4XfqalpencuXOOdS0KwzA0f/58tWrVKs/pL0kaO3as5s2bp379+qly5cqSfh8GeD1FDVA9evTQ6NGj9dlnn6lcuXKy2+1Oh6ol6dNPP1WfPn2cRjtdunQpz83girLsSpUqafv27crJyXH64rv2vVNUVapU0fDhwzV8+HDt27dP9evX15tvvuk0Iqaw/ZN+v3fM1UeTcstutn+FkXsxeu5FyvmpUqWKcnJytGvXruveqbiwr0lxrO9nn30mPz8/ffvtt05D3GfPnl2kdkJCQtShQwfNmzdPcXFx+s9//nPTNyErrCpVqsgwDEVHR+vOO+8stuWULVtWgYGBys7Oduk9eIryWTxy5Ij279/v+I65Wu730tmzZ106DN/dbp2odYu79tRGQECAqlat6nQ4Nvd+DtfukNq3b6/s7Gy9++67TuVvv/22LBaL2rVrJ+l/X7TvvfeeU71p06YVup+5fzVc+1dCcX9R5Wrfvn2+y3vrrbck6bojkgryn//8R4cOHVK/fv306KOP5pl69Oih1atX6/jx4ypbtqyaN2+uDz74QEeOHHFq5+ptUtBrVZCaNWuqTp06WrhwoRYuXKjy5cvnGc3k7e2dZ7tPmzYtz5DSoiy7ffv2Sk1N1cKFCx1lV65c0bRp0xQQEFDke8BcvHhRly5dciqrUqWKAgMDnd7LhdWoUSOFhYVp5syZTs9fvny5du/efVOvd2GsWrVKY8eOVXR09HWHKnfu3FleXl4aM2ZMnqNY174fCvN6FMf6ent7y2KxOL1PDh06pCVLlhS5rccff1y7du3SCy+8IG9v7zwh2tW6dOkib29vjR49Os973zCMG54SLixvb2917dpVn332Wb5/fJw8efKm2i1VqlShT7+OGzdOixcvdprGjh0rSfrb3/6mxYsXe9R9qAqDIygeolatWmrZsqUaNmyokJAQbdmyRZ9++qkGDRrkqNOwYUNJ0pAhQxQbG+v4gujYsaNatWqlV155RYcOHVK9evX03Xff6YsvvtDQoUMdwzUbNmyorl27asqUKTp9+rRjmPFPP/0kqXBpPygoSM2bN9fEiROVlZWlO+64Q999950OHjxYDFslr3r16qlPnz6aNWuWzp07pxYtWuiHH37Qhx9+qM6dO6tVq1ZFbnPevHny9vYu8Mu/U6dOeuWVV7RgwQIlJCRo6tSpatasme6++24NHDhQ0dHROnTokL766iulpKRI+t9r9corr6hnz54qUaKEOnbseN0vmB49emjkyJHy8/PTgAED8hzKffjhh/XRRx/JZrOpVq1a2rBhg1asWKHQ0FCnevXr15e3t7feeOMNpaeny2q16oEHHsj3WoqBAwfq73//u/r27autW7cqKipKn376qeOv42uva7qRn376Sa1bt1b37t1Vq1Yt+fj4aPHixUpLS7upnVmJEiX0xhtvqF+/fmrRooV69erlGHYbFRWV7+m4olq+fLn27NmjK1euKC0tTatWrVJycrIqVaqkL7/88ro3KatatapeeeUVjR07Vvfff7+6dOkiq9WqzZs3KyIiQklJSZJ+fz/MmDFD48aNU9WqVRUWFpbnCElxrW+HDh301ltvqW3btnrsscd04sQJTZ8+XVWrVtX27duL3FZoaKgWLVqkdu3aXff6nGsdO3Ys3yNoAQEB6ty5c77PqVKlisaNG6fExEQdOnRInTt3VmBgoA4ePKjFixdr4MCBev7554u0DgWZMGGCVq9erZiYGD311FOqVauWzpw5o23btmnFihU6c+ZMkdts2LChFi5cqISEBDVu3FgBAQHq2LFjvnVz7zN1tdyjJY0bNy5w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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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PV2nTp3K056ZmXnLx44dO1bJycl67LHH1KxZM2VkZGjbtm366quv9Jvf/Ea///3vdfz4caWkpOjtt992eawxRl27dtX69es1cOBANWrUSJ988omefvppHTt2TNOmTXP27d+/vxYvXqy+ffuqefPm2rBhg2JjY29YV8+ePVWrVi298MILzrCTkpKi77//XgkJCQoLC9POnTs1d+5c7dy5U5s3b87zAd67d2/VrVtXkyZN0ocffqgJEyYoODhYf/vb39SuXTtNnjxZCxYs0FNPPaWmTZuqVatWN91Wjz32mN588009/PDDGjFihLZs2aLk5GTt3r1by5YtkyS9/fbbmjt3rr788kv94x//kCTde++9N53v8ePHtX79eueXc58+fTRt2jT99a9/ddnz8PXXX+v+++9XqVKlNHjwYEVEROi7777TihUrNHHiRHXv3l379u3TO++8o2nTpqlChQqSpIoVK+ZZZpMmTVS9enUtXrzY+QWdY9GiRSpXrpxiYmIk/XgI5IsvvlBcXJwqV66sQ4cOafbs2WrTpo127dqlMmXKqFWrVnriiSc0Y8YMPfvss6pbt64kOf/N7dKlS2rTpo0OHDigIUOGKDIyUkuWLFH//v117tw5Pfnkky79Fy5cqPPnz+v3v/+9HA6HpkyZou7du+v7779XqVKlJEk9evTQzp07NXToUEVEROjEiRNKSUnRkSNHbvgBPWrUKNWuXVtz5851HnKpUaOGpB9DV0JCgpo2bark5GSlpaXplVde0eeff65///vfLntcrl27ppiYGLVs2VJTp05VmTJl8l3e7ejbt6+effZZrV69WoMGDbphv3Hjxmns2LG699579fzzz6t06dLasmWL1q1bpwceeEDTp0/X0KFD5efn5wyxoaGhN5xfQdY3KytLMTExio6O1tSpU7VmzRq99NJLqlGjhv74xz86+73yyivq2rWr4uPjdfXqVb377rvq2bOnVq5cmef9v27dOi1evFhDhgxRhQoVFBkZqUcffVRTpkzRmTNnFBwc7Oy7YsUKZWRk3NYv/szMzHw/H8uWLevcQ5WfiRMnavTo0erVq5cee+wxnTx5UjNnzlSrVq3ybI+zZ8/qwQcfVFxcnHr27KnZs2crLi5OCxYs0LBhw/SHP/xBjzzyiF588UU9/PDDOnr0qPz9/SVJaWlpat68uTOkVaxYUatWrdLAgQOVkZGR5zDNpEmT5OHhoaeeekrp6emaMmWK4uPjtWXLFkk/vqbT09P1ww8/OD+D/fz8brmd9u3bp7Jly+rq1asKDQ3VoEGDNGbMGOf7q0QxKHLz5s0zkm56q1+/vstjqlWrZvr16+e837BhQxMbG3vT5SQmJpr8ntLly5cbSWbChAku7Q8//LBxOBzmwIEDxhhjtm/fbiSZYcOGufTr37+/kWSee+45Z9tzzz1nJJk+ffrkWd5///vfPG3vvPOOkWQ2btyYZx6DBw92tl27ds1UrlzZOBwOM2nSJGf72bNnja+vr8s2yc+OHTuMJPPYY4+5tD/11FNGklm3bp2zrV+/fqZs2bI3nd/1pk6danx9fU1GRoYxxph9+/YZSWbZsmUu/Vq1amX8/f3N4cOHXdqzs7Od/3/xxReNJHPw4ME8y8n93I8cOdKUKlXKnDlzxtl25coVExQUZAYMGOBsy2+7b9q0yUgyb731lrNtyZIlRpJZv359nv6tW7c2rVu3dt6fPn26kWTmz5/vbLt69app0aKF8fPzc26LgwcPGkmmfPnyLnW+//77RpJZsWKFMebH51GSefHFF/Ms+1Zy3kdbt251qSUkJMQ0aNDAXLp0ydm+cuVKI8mMGTPG2davXz8jyTzzzDN3vLzcAgMDTePGjZ33c17TOfbv3288PDzMb3/7W5OVleXy2OtfD/Xr13fZ7jnWr1/v8lzdyfo+//zzLvNs3LixiYqKcmnL/dq5evWqadCggWnXrp1LuyTj4eFhdu7c6dK+d+9eI8nMnj3bpb1r164mIiLCZV3zU61atRt+NiYnJzv75d6+hw4dMp6enmbixIku8/vmm2+Ml5eXS3vr1q2NJLNw4UJn2549e5zrtHnzZmf7J598YiSZefPmOdsGDhxoKlWqZE6dOuWyrLi4OBMYGOjchjnPWd26dc2VK1ec/V555RUjyXzzzTfOttjYWFOtWrWbbpvrDRgwwIwdO9YsXbrUvPXWW6Zr165GkunVq9dtz6M44RDPz2jWrFlKSUnJc7v+JLsbCQoK0s6dO7V///4CL/ejjz6Sp6ennnjiCZf2ESNGyBijVatWSfpxCKckPf744y79hg4desN5/+EPf8jTdv2vncuXL+vUqVNq3ry5JOmrr77K0/+xxx5z/t/T01NNmjSRMUYDBw50tgcFBal27dr6/vvvb1iL9OO6SlJSUpJLe87Jdx9++OFNH38zCxYsUGxsrPMXVa1atRQVFeVymOfkyZPauHGjBgwYoKpVq7o8/k6HR/bu3VuZmZn65z//6WxbvXq1zp07p969ezvbrt/umZmZOn36tGrWrKmgoKB8t/vt+OijjxQWFqY+ffo420qVKqUnnnhCFy5c0IYNG/LUWq5cOef9+++/X5Kcz1vOOT+ffvqpzp49e0c1XW/btm06ceKEHn/8cZfzIGJjY1WnTp18n+/r9xz8VH5+fjcdzbN8+XJlZ2drzJgxeU58vpPXw52sb+736P3335/nfXT9a+fs2bNKT0/X/fffn+/rpnXr1qpXr55L21133aXo6GiX98KZM2e0atUqxcfH39a6RkdH5/v5eP1rL7d//vOfys7OVq9evXTq1CnnLSwsTLVq1dL69etd+vv5+SkuLs55v3bt2goKClLdunUVHR3tUov0v9etMUZLly5Vly5dZIxxWVZMTIzS09PzbKuEhASXPau53wt34rXXXtNzzz2n7t27q2/fvnr//fc1aNAgLV68WJs3b77j+dqKQzw/o2bNmrmcbJejXLly+e7avN7zzz+vhx56SHfddZcaNGigjh07qm/fvrcVbg4fPqzw8HDnF2uOnN36hw8fdv7r4eGhyMhIl341a9a84bxz95V+/GAaN26c3n33XeeJjTnS09Pz9M/9RR4YGCgfHx/noY/r23Ofx5JbzjrkrjksLExBQUHOdS2o3bt369///rd+97vf5TmOPGvWLGVkZCggIMD54VMYw8ZzNGzYUHXq1NGiRYucoW3RokWqUKGC2rVr5+x36dIlJScna968eTp27JjL+UX5bffbcfjwYdWqVSvPl2vu106O3M9lTljJCSPe3t6aPHmyRowYodDQUDVv3lwPPvigfve73yksLOyO6pN+/KLJrU6dOvrss89c2ry8vFS5cuUCL+dGLly4oJCQkBtO/+677+Th4ZHnC/1OFXR9fXx88hw6LFeuXJ5wuHLlSk2YMEE7duzIc65Wbvm95yXpd7/7nYYMGaLDhw+rWrVqWrJkiTIzM9W3b9/bWrcKFSoUeHTW/v37ZYxRrVq18p2e+7BH5cqV86xTYGCgqlSpkqdN+t/r9uTJkzp37pzmzp2ruXPn5rus3J91t3ovFJYRI0bo73//u9asWeP8IVhSEFCKiVatWum7777T+++/r9WrV+sf//iHpk2bpjlz5rjsgfi55XdsuFevXvriiy/09NNPq1GjRvLz81N2drY6duyo7OzsPP09PT1vq01SnpN6b6SwL+aUcyLk8OHDNXz48DzTly5dqoSEhEJd5vV69+6tiRMn6tSpU/L399cHH3ygPn36uIwYGTp0qObNm6dhw4apRYsWCgwMlMPhUFxcXL7bvSjczvM2bNgwdenSRcuXL9cnn3yi0aNHKzk5WevWrVPjxo2LtD5vb+9CG8L9ww8/KD09/aYB3t1u9Hxc71//+pe6du2qVq1a6dVXX1WlSpVUqlQpzZs3TwsXLszT/0bng8TFxWn48OFasGCBnn32Wc2fP19NmjTJN0wVluzsbDkcDq1atSrfdc19TseNtsetXrc5759HH300z7lgOXL/WPypn2G3KydcnTlzplDnawMCSjESHByshIQEJSQk6MKFC2rVqpXGjh3rDCg3+lKuVq2a1qxZo/Pnz7vsRdmzZ49zes6/2dnZOnjwoMsvkuv3GNzK2bNntXbtWo0bN05jxoxxtt/Joak7kbMO+/fvdznxMy0tTefOnXOua0EYY7Rw4UK1bds2z+EvSRo/frwWLFighIQEVa9eXZL07bff3nSeBQ1QvXv31rhx47R06VKFhoYqIyPDZVe1JL333nvq16+fy2iny5cv57kYXEGWXa1aNX399dfKzs52+WLP/dopqBo1amjEiBEaMWKE9u/fr0aNGumll15yGRFzu/VJP1475vq9STltd1rf7cg5GT3nJOX81KhRQ9nZ2dq1a9dNr1R8u89JUazv0qVL5ePjo08++cRliPu8efMKNJ/g4GDFxsZqwYIFio+P1+eff16gi5DdiRo1asgYo8jISN11111FtpyKFSvK399fWVlZhXoNnsL4IZWz1za/k+yLO85BKSZyH9rw8/NTzZo1XXbH5lzPIfcXUufOnZWVlaW//vWvLu3Tpk2Tw+FQp06dJP3vg/bVV1916Tdz5szbrjPnV0PuXwlF/UGVo3Pnzvku7+WXX5akm45IupHPP/9chw4dUkJCgh5++OE8t969e2v9+vU6fvy4KlasqFatWun111/XkSNHXOZz/Ta50XN1I3Xr1tXdd9+tRYsWadGiRapUqVKe0Uyenp55tvvMmTPzDCktyLI7d+6s1NRULVq0yNl27do1zZw5U35+fgW+Bsx///tfXb582aWtRo0a8vf3d3kt364mTZooJCREc+bMcXn8qlWrtHv37jt6vm/HunXrNH78eEVGRt50qHK3bt3k4eGh559/Ps9erNyvh9t5PopifT09PeVwOFxeJ4cOHdLy5csLPK++fftq165devrpp+Xp6ZknRBe27t27y9PTU+PGjcvz2jfG3PKQ8O3y9PRUjx49tHTp0nx/fJw8efKO5lu2bNnbPvyakZGR5z1ijNGECRMk3TwoF1fsQSkm6tWrpzZt2igqKkrBwcHatm2b3nvvPQ0ZMsTZJyoqSpL0xBNPKCYmxvkB0aVLF7Vt21ajRo3SoUOH1LBhQ61evVrvv/++hg0b5hyuGRUVpR49emj69Ok6ffq0c5jxvn37JN1e2g8ICFCrVq00ZcoUZWZm6le/+pVWr16tgwcPFsFWyathw4bq16+f5s6dq3Pnzql169b68ssv9eabb6pbt25q27Ztgee5YMECeXp63vDDv2vXrho1apTeffddJSUlacaMGWrZsqV+/etfa/DgwYqMjNShQ4f04YcfaseOHZL+91yNGjVKcXFxKlWqlLp06XLTi4b17t1bY8aMkY+PjwYOHJjnUMWDDz6ot99+W4GBgapXr542bdqkNWvWqHz58i79GjVqJE9PT02ePFnp6eny9vZWu3bt8j2XYvDgwfrb3/6m/v37a/v27YqIiNB7773n/HWc+7ymW9m3b5/at2+vXr16qV69evLy8tKyZcuUlpZ2R19mpUqV0uTJk5WQkKDWrVurT58+zmG3ERER+R6OK6hVq1Zpz549unbtmtLS0rRu3TqlpKSoWrVq+uCDD256kbKaNWtq1KhRGj9+vO6//351795d3t7e2rp1q8LDw51XBI2KitLs2bM1YcIE1axZUyEhIXn2kBTV+sbGxurll19Wx44d9cgjj+jEiROaNWuWatasqa+//rrA8ypfvryWLFmiTp063fT8nNyOHTuW7x40Pz8/devWLd/H1KhRQxMmTNDIkSN16NAhdevWTf7+/jp48KCWLVumwYMH66mnnirQOtzIpEmTtH79ekVHR2vQoEGqV6+ezpw5o6+++kpr1qy5o0MsUVFRWrRokZKSktS0aVP5+fmpS5cu+fb96quv1KdPH/Xp00c1a9bUpUuXtGzZMn3++ecaPHiwfv3rX//UVbTPzzxq6BfpVsMVW7du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xhgNGTJEy5Yt07p16xQZGenukkqU9u3b65tvvtGOHTuctyZNmig+Pl47duyQp6enu0ss9u677748Q+P37dunatWquamikue///2vPDxcv5Y8PT2VnZ3tpopKtsjISIWFhbl892VkZGjLli1WfPdxiOf/JCUlqV+/fmrSpImaNWum6dOn6+LFi0pISHB3aSVCYmKiFi5cqPfff1/+/v7O45uBgYHy9fV1c3XFn7+/f57zecqWLavy5ctznk8hGT58uO6991698MIL6tWrl7788kvNnTtXc+fOdXdpJUaXLl00ceJEVa1aVfXr19e///1vvfzyyxowYIC7Syu2Lly4oAMHDjjvHzx4UDt27FBwcLCqVq2qYcOGacKECapVq5YiIyM1evRohYeHq1u3bu4rOoe7hxHZZObMmaZq1aqmdOnSplmzZmbz5s3uLqnEkJTvbd68ee4urcRimHHhW7FihWnQoIHx9vY2derUMXPnznV3SSVKRkaGefLJJ03VqlWNj4+PqV69uhk1apS5cuWKu0srttavX5/vZ2+/fv2MMT8ONR49erQJDQ013t7epn379mbv3r3uLfr/OIzhEn0AAMAunIMCAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOv8f1tkyRQU5GOhAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAGzCAYAAAAi6m1wAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABCT0lEQVR4nO3de1xVVcL/8e8BBBS5iARIIaKZl7ymSVSipiMqo/lkeSNFs5xp0EaxHqWL4SUxbUwts/F5ynoKy5rKyrLESzqlqemQqUVaXjIFK5XjJQFh/f7oxx6PgALBANvP+/XaLz1rr7322vucw/metS/HYYwxAgAAsBG36u4AAABAZSPgAAAA2yHgAAAA2yHgAAAA2yHgAAAA2yHgAAAA2yHgAAAA2yHgAAAA2yHgAAAA2yHg1FJNmjTRqFGjqrsbtjd37lw1bdpU7u7u6tChQ3V3R1L1Pvfdu3dX9+7dq2XdZfHRRx+pQ4cO8vb2lsPh0MmTJ6u7Sy5SUlLkcDgqrb1PPvlEDodDn3zySaW1WZtV9v5F7UbAqQFeeuklORwOffHFFyXO7969u9q0afO71/Phhx8qJSXld7dzpVi9erX++7//W7fccouWLl2qWbNmlWm5wYMHy+FwaPLkyRVe96ZNm5SSklItH9B79uxRSkqKDhw48B9f9+/xyy+/aPDgwapbt64WLVqkV155RT4+PlW2vqL3bdHk7e2tsLAwxcbGauHChTp16lSlreu5557TSy+9VGnt1TZNmjRx2dcXTn369Knu7lWZZcuWaf78+eVaJi8vT7NmzVLLli3l7e2tkJAQxcXF6fDhw1XTyRrMo7o7gIrJzMyUm1v58umHH36oRYsWEXLKaN26dXJzc9MLL7wgT0/PMi3jdDr1/vvvq0mTJnrttdc0e/bsCn2j3LRpk6ZNm6ZRo0YpICDAZV5Fnvvy2LNnj6ZNm6bu3burSZMmLvNWr15dZev9vbZt26ZTp05pxowZ6tWr139svdOnT1dkZKTy8/OVlZWlTz75RBMmTNC8efP03nvvqV27dlbdRx99VFOmTCn3Op577jkFBQUVG7mLiYnRr7/+WubXZ23WoUMHTZo0qVh5WFhYNfTmP2PZsmXatWuXJkyYUKb6+fn5iouL06ZNm3TfffepXbt2OnHihLZs2aKcnBxdc801VdvhGoaAU0t5eXlVdxfK7cyZM1X6jbqyHTt2THXr1i3Xh8dbb72lgoICvfjii7rtttu0ceNGdevWrVL7VZ3PfU3+ID127JgkFQuEv0dZXrN9+/ZV586drcfJyclat26d/vjHP2rAgAH6+uuvVbduXUmSh4eHPDwq78+um5ubvL29K629ylZYWKi8vLxK6ePVV1+tu+++uxJ6ZV9PP/20NmzYoE8//VRdunSp7u5UP4Nqt3TpUiPJbNu2rcT53bp1M9dff71LWUREhElISLAe5+XlmZSUFHPttdcaLy8vExgYaG655RazevVqY4wxCQkJRlKxqcjp06dNUlKSueaaa4ynp6e57rrrzNy5c01hYaHLes+ePWvGjx9vGjZsaOrXr2/69+9vDh8+bCSZxx9/3Kr3+OOPG0lm9+7dZtiwYSYgIMB06NDBGGPMl19+aRISEkxkZKTx8vIyISEhZvTo0ebnn392WVdRG5mZmSY+Pt74+fmZoKAg8+ijj5rCwkJz6NAhM2DAAOPr62tCQkLMU089Vab9nZ+fb6ZPn26aNm1qPD09TUREhElOTjbnzp2z6pS0r5YuXXrZtnv27Gn69etnjDGmVatW5r777iux3tdff23uuusuExQUZLy9vc11111nHn74YZftvnjav3+/Mcb1ud+2bZuRZF566aVi6/joo4+MJPP+++8bY4w5cOCAuf/++811111nvL29TWBgoLnzzjutdo3592vx4mn9+vXGmN9ei926dXNZT3Z2trnnnntMcHCw8fLyMu3atSvWn/379xtJZu7cuebvf/+7te87d+5stm7d6lL36NGjZtSoUebqq682np6eJjQ01AwYMMClnxfr1q1bsT5f+P544403zA033GC8vb1Nw4YNTXx8vDl8+LBLGwkJCcbHx8fs27fP9O3b19SvX9/cfvvtpa7zcu/bWbNmGUlmyZIlVlnRc3uxV155xdx4442mbt26JiAgwHTt2tV8/PHHxpjfnu+Lt63oOVi/fr3L81OR7T18+LC5/fbbjY+PjwkKCjKTJk0y58+fd6k7d+5cEx0dbQIDA423t7e54YYbzJtvvllsOySZxMRE8+qrr5rWrVsbDw8P8/bbb5uIiAgzYMCAYvV//fVX4+fnZ8aOHVviPiwSERFh4uLiLlnHmEvv36L90aBBAzNkyBBz6NAhlzpFf2e//PJLExMTY+rWrWuaNWtmbecnn3xiunTpYr1f09PTi63n8OHDZvTo0SY4ONh4enqa1q1bmxdeeMGlTtFztnz5cjNz5kxz9dVXGy8vL3PbbbeZvXv3uvTn4uc9IiKi1G0vKCgwYWFhZvDgwcaY3/7OnTlz5rL7zM4YwalBcnJy9PPPPxcrz8/Pv+yyKSkpSk1N1b333qsuXbrI6XTqiy++0I4dO/SHP/xBf/rTn3TkyBGlp6frlVdecVnWGKMBAwZo/fr1GjNmjDp06KCPP/5YDz30kH788Uc9/fTTVt1Ro0bpjTfe0IgRI3TTTTdpw4YNiouLK7Vfd911l5o3b65Zs2bJGCNJSk9P1/fff6/Ro0crNDRUu3fv1pIlS7R79259/vnnxQ7pDBkyRK1atdLs2bP1wQcfaObMmQoMDNTf//533XbbbXryySeVlpamBx98UDfeeKNiYmIuua/uvfdevfzyy7rzzjs1adIkbdmyRampqfr666/1zjvvSJJeeeUVLVmyRFu3btX//u//SpJuvvnmS7Z75MgRrV+/Xi+//LIkadiwYXr66af17LPPuox87Ny5U127dlWdOnU0duxYNWnSRN99953ef/99PfHEE7rjjjv07bff6rXXXtPTTz+toKAgSdJVV11VbJ2dO3dW06ZN9cYbbyghIcFl3vLly9WgQQPFxsZK+u0QzqZNmzR06FBdc801OnDggBYvXqzu3btrz549qlevnmJiYvTAAw9o4cKFevjhh9WqVStJsv692K+//qru3btr3759GjdunCIjI/Xmm29q1KhROnnypP7617+61F+2bJlOnTqlP/3pT3I4HJozZ47uuOMOff/996pTp44kadCgQdq9e7fGjx+vJk2a6NixY0pPT9ehQ4eKHTIr8sgjj6hFixZasmSJdcioWbNmkn47V2b06NG68cYblZqaquzsbC1YsECfffaZ/vWvf7mM+Jw/f16xsbG69dZb9dRTT6levXolrq8sRowYoYcfflirV6/WfffdV2q9adOmKSUlRTfffLOmT58uT09PbdmyRevWrVPv3r01f/58jR8/XvXr19cjjzwiSQoJCSm1vfJsb0FBgWJjYxUVFaWnnnpKa9as0d/+9jc1a9ZM999/v1VvwYIFGjBggOLj45WXl6fXX39dd911l1auXFns/b9u3Tq98cYbGjdunIKCghQZGam7775bc+bM0fHjxxUYGGjVff/99+V0Oss0MpOfn1/i30cfHx9rhKwkTzzxhB577DENHjxY9957r3766Sc988wziomJKbY/Tpw4oT/+8Y8aOnSo7rrrLi1evFhDhw5VWlqaJkyYoD//+c8aPny45s6dqzvvvFM//PCDfH19JUnZ2dm66aab5HA4NG7cOF111VVatWqVxowZI6fTWeww0+zZs+Xm5qYHH3xQOTk5mjNnjuLj47VlyxZJv72mc3JydPjwYetvcP369Uvdzj179ujIkSNq166dxo4dq5dffll5eXlq27atFixYoB49elx2H9tOdScslP6t+cLpciM47du3v+w3nMTExBK/3axYscJIMjNnznQpv/POO43D4TD79u0zxhizfft2I8lMmDDBpd6oUaNKHcEZNmxYsfWdPXu2WNlrr71mJJmNGzcWa+PCb3fnz58311xzjXE4HGb27NlW+YkTJ0zdunVd9klJMjIyjCRz7733upQ/+OCDRpJZt26dVVb0DbesnnrqKVO3bl3jdDqNMcZ8++23RpJ55513XOrFxMQYX19fc/DgQZfyC0fL5s6d6zJqc6GLn/vk5GRTp04dc/z4cassNzfXBAQEmHvuuccqK2m/b9682Ugy//d//2eVvfnmmyWOChhTfARn/vz5RpJ59dVXrbK8vDwTHR1t6tevb+2LohGchg0buvTz3XffdRllOnHihDXSU14ljajk5eWZ4OBg06ZNG/Prr79a5StXrjSSzNSpU62yolHOKVOmVHh9F/P39zcdO3a0Hl88wrB3717j5uZm/uu//ssUFBS4LHvh6+H6668vNnJmTPERnIps7/Tp013a7Nixo+nUqZNL2cWvnby8PNOmTRtz2223uZRLMm5ubmb37t0u5ZmZmUaSWbx4sUv5gAEDTJMmTYqNFF+spFGsoik1NdWqd/H+PXDggHF3dzdPPPGES3tfffWV8fDwcCkvGjFZtmyZVfbNN99Y2/T5559b5R9//HGxUd0xY8aYRo0aFRuJHjp0qPH397f2YdFz1qpVK5Obm2vVW7BggZFkvvrqK6ssLi7ukqM2F3r77bet91jz5s3N0qVLzdKlS03z5s2Np6en+fLLL8vUjp1wFVUNsmjRIqWnpxebLjxJsTQBAQHavXu39u7dW+71fvjhh3J3d9cDDzzgUj5p0iQZY7Rq1SpJv12CK0l/+ctfXOqNHz++1Lb//Oc/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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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PXpUb775pmJiYty2x8mTJ3XXXXepX79+uu+++zR16lT169dPs2bN0ogRI/TYY4/p/vvv18SJE3XvvffqwIEDCggIkCSlp6fr1ltvlcPh0LBhw1S5cmUtXrxYgwYNUmZmptthmuTkZHl5eenJJ59URkaGJkyYoLi4OG3cuFHSr6/pjIwMHTx40Pke7O/vf9ntdKE5c+YoLy9PcXFxRXpeqVHSCelGUNi31guny42gNGnS5LLfMIYOHVrgt4uFCxcaSWb8+PEu5ffee69xOBxm9+7dxhhjtmzZYiSZESNGuNQbMGBAoSMo/fv3d1vezz//7Fb20UcfGUlm3bp1bm1c+O3q3Llzplq1asbhcJjk5GRn+cmTJ025cuVctklBUlJSjCTzyCOPuJQ/+eSTRpJZtWqVsyz/G+aVeuWVV0y5cuVMZmamMcaYn376yUgyCxYscKkXExNjAgICzL59+1zKLxytmjhxosuoyYUu3veJiYmmbNmy5sSJE86ynJwcExwcbB5++GFnWUHbff369UaS+fvf/+4smzdvXoHfyo1xH0GZNGmSkWRmzpzpLDt79qxp06aN8ff3d26L/BGUihUruvTzs88+cxnlOXnypHOkpagKGtE4e/asCQ0NNY0aNTK//PKLs3zRokVGkhk9erSzLH+U8emnn77q5V0sKCjINGvWzPn44m/4u3btMl5eXuYPf/iDOX/+vMtzL3w9/O53v3MbuTLGfQTlatZ33LhxLm02a9bMtGjRwqXs4tfO2bNnTaNGjUzHjh1dyiUZLy8vs337dpfynTt3Gklm6tSpLuU9e/Y0kZGRbiO1FytoFCl/SkpKcta7ePumpqYab29v89JLL7m0991335kyZcq4lOePWMyePdtZ9uOPPzrXacOGDc7ypUuXuo2qDho0yFStWtVtJLhfv34mKCjIuQ3z91mDBg1MTk6Os94bb7xhJJnvvvvOWda9e/cij5pcqEWLFqZq1apur63rBVfx/IamTJmi5cuXu00XnmRXmODgYG3fvl27du0q8nK/+uoreXt764knnnApHzVqlIwxWrx4saRfT7aSpD/+8Y8u9YYPH15o24899phb2YXfds6cOaNjx47p1ltvlSRt3brVrf4jjzzi/L+3t7datmwpY4wGDRrkLA8ODla9evX0n//8p9C+SL+uqyQlJCS4lOeffPfll19e8vmXMmvWLHXv3t35japOnTpq0aKFZs2a5axz9OhRrVu3Tg8//LCqV6/u8vyrvTyyb9++ys3N1aeffuosW7ZsmU6dOqW+ffs6yy7c7rm5uTp+/Lhq166t4ODgArf7lfjqq68UFham/v37O8vKli2rJ554QllZWVq7dq1bXytUqOB83LZtW0ly7rf8c37WrFmjkydPXlWfLrR582YdOXJEf/zjH13Og+jevbvq169f4P6+cOTgWvn7+1/yap6FCxcqLy9Po0ePdjvx+WpeD1ezvhf/jbZt29bt7+jC187JkyeVkZGhtm3bFvi6adeunRo2bOhSVrduXUVHR7v8LZw4cUKLFy9WXFzcFa1rdHR0ge+PF772Lvbpp58qLy9Pffr00bFjx5xTWFiY6tSpo9WrV7vU9/f3V79+/ZyP69Wrp+DgYDVo0EDR0dEufZH+97o1xmj+/Pnq0aOHjDEuy+rSpYsyMjLcttXAgQNdRlYv/lu4Vj/99JO2bNmifv36efSk+pLEIZ7fUOvWrV1OtstXoUKFAoc2LzRu3Djdfffdqlu3rho1aqSuXbvqwQcfvKJws2/fPoWHhzs/WPPlD+vv27fP+a+Xl5eioqJc6tWuXbvQti+uK/36xjR27FjNmTPHeWJjvoyMDLf6F3+QBwUFyc/Pz3no48Ly48ePF9qXC9fh4j6HhYUpODjYua5FtWPHDv3rX//SQw89pN27dzvL27dvrylTpigzM1OBgYHON5/iuGw8X5MmTVS/fn3NnTvXGdrmzp2rSpUqqWPHjs56v/zyi5KSkjR9+nT997//dR5ykwre7ldi3759qlOnjtsb4MWvnXwX78v8sJIfRnx9ffXyyy9r1KhRqlKlim699VbdddddeuihhxQWFnZV/ZN+/aC5WP369fX111+7lJUpU0bVqlUr8nIKk5WVpdDQ0ELn79mzR15eXm4f6FerqOvr5+fnduiwQoUKbuFw0aJFGj9+vFJSUpSTk+MsLyhYFPQ3L0kPPfSQhg0bpn379qlGjRqaN2+ecnNz9eCDD17RulWqVKnIV2ft2rVLxhjVqVOnwPn5hxXzVatWzW2dgoKCFBER4VYm/e91e/ToUZ06dUrTpk3TtGnTClzWxe91l/tbuFb5YfC6PbwjAkqpERMToz179uizzz7TsmXL9Le//U2vv/663nnnHZcRiN9aQceG+/Tpo2+++UZ//vOf1bRpU/n7+ysvL09du3ZVXl6eW31vb+8rKpPk8qF7KcV9M6eZM2dKkkaOHKmRI0e6zZ8/f74GDhxYrMu8UN++ffXSSy/p2LFjCggI0Oeff67+/fu7XDEyfPhwTZ8+XSNGjFCbNm0UFBQkh8Ohfv36FbjdPeFK9tuIESPUo0cPLVy4UEuXLtXzzz+vpKQkrVq1Ss2aNfNo/3x9fYvt2+bBgweVkZFxyQBf0grbHxf6xz/+oZ49eyomJkZvv/22qlatqrJly2r69OmaPXu2W/3Czgfp16+fRo4cqVmzZumZZ57RzJkz1bJlywLDVHHJy8uTw+HQ4sWLC1zXi8/pKGx7XO51m//388ADD7idC5bv4i+L1/oedjmzZ89WvXr11KJFi2Jpz0YElFIkJCREAwcO1MCBA5WVlaWYmBiNGTPGGVAK+1CuUaOGVqxYodOnT7uMovz444/O+fn/5uXlae/evS7fSC4cMbickydPauXKlRo7dqxGjx7tLL+aQ1NXI38ddu3a5XLiZ3p6uk6dOuVc16Iwxmj27Nnq0KGD2+EvSXrxxRc1a9YsDRw4UDVr1pQkff/995dss6gBqm/fvho7dqzmz5+vKlWqKDMz02WoWpI++eQTxcfH69VXX3WWnTlzxu1mcEVZdo0aNbRt2zbl5eW5fLBf/Nopqlq1amnUqFEaNWqUdu3apaZNm+rVV191BsGi9E/69d4xF44m5Zddbf+uRP7J6PknKRekVq1aysvL0w8//HDJOxVf6T7xxPrOnz9ffn5+Wrp0qcsl7tOnTy9SOyEhIerevbtmzZqluLg4/fOf/7zim5BdrVq1askYo6ioKNWtW9djy6lcubICAgJ0/vz5Yr0Hz9V+kdq4caN2796tcePGFVtfbHR9Hri6Dl18aMPf31+1a9d2GY7Nv5/DxR9I3bp10/nz5/XWW2+5lL/++utyOByKjY2V9L832rffftul3ptvvnnF/cz/1nDxtwRPv1Hl69atW4HLe+211yTpklckFeaf//ynUlNTNXDgQN17771uU9++fbV69WodOnRIlStXVkxMjN5//33t37/fpZ0Lt0lh+6owDRo00C233KK5c+dq7ty5qlq1qtvVTN7e3m7b/c0339T58+ddyoqy7G7duiktLU1z5851lp07d05vvvmm/P39i3wPmJ9//llnzpxxKatVq5YCAgJcXstXqmXLlgoNDdU777zj8vzFixdrx44dV7W/r8SqVav04osvKioq6pJD7L169ZKXl5fGjRvnNop18evhSvaHJ9bX29tbDofD5XWSmpqqhQsXFrmtBx98UD/88IP+/Oc/y9vb2y1EF7d77rlH3t7eGjt2rNtr3xhz2UPCV8rb21u9e/fW/PnzC/zycfTo0atqt3z58ld1+DV/ZOv++++/quWWFoyglBINGzZU+/bt1aJFC4WEhGjz5s365JNPNGzYMGed/KG+J554Ql26dHG+QfTo0UMdOnTQs88+q9TUVDVp0kTLli3TZ599phEjRjgv12zRooV69+6tSZMm6fjx487LjH/66SdJV5b2AwMDFRMTowkTJig3N1c333yzli1bpr1793pgq7hr0qSJ4uPjNW3aNJ06dUrt2rXTt99+qw8++EC9evVShw4ditzmrFmz5O3tXeibf8+ePfXss89qzpw5SkhI0OTJk3X77berefPmGjJkiKKiopSamqovv/xSKSkpkv63r5599ln169dPZcuWVY8ePS5507C+fftq9OjR8vPz06BBg9wOVdx111368MMPFRQUpIYNG2r9+vVasWKFKlas6FKvadOm8vb21ssvv6yMjAz5+vqqY8eOBZ5LMWTIEL377rsaMGCAtmzZosjISH3yySfOb8cXn9d0OT/99JM6deqkPn36qGHDhipTpowWLFig9PT0q/owK1u2rF5++WUNHDhQ7dq1U//+/Z2X3UZGRhZ4OK6oFi9erB9//FHnzp1Tenq6Vq1apeXLl6tGjRr6/PPPL3mTstq1a+vZZ5/Viy++qLZt2+qee+6Rr6+vNm3apPDwcCUlJUn69fUwdepUjR8/XrVr11ZoaKjbCImn1rd79+567bXX1LVrV91///06cuSIpkyZotq1a2vbtm1FbqtixYqaN2+eYmNjL3l+zsX++9//FjiC5u/vr169ehX4nFq1amn8+PFKTExUamqqevXqpYCAAO3du1cLFizQkCFD9OSTTxZpHQqTnJys1atXKzo6WoMHD1bDhg114sQJbd26VStWrNCJEyeK3GaLFi00d+5cJSQkqFWrVvL397/sDdfOnz+vuXPn6tZbb3W+d1+3fuvLhm5ExXGjtvHjx5vWrVub4OBgU65cOVO/fn3z0ksvmbNnzzrrnDt3zgwfPtxUrlzZOBwOl8vx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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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QqlUonXr1vj0009N+pQ/Z1u2bMG8efPQpEkTODo6om/fvvjpp59M6klJScHFixel593X1/eecywpKcHt27fh6elp0u7h4QEbGxspRNclPALzCNHr9fj9998rtZeUlDxw25kzZyIpKQljxoxBly5dYDAYcOLECZw8eRJPP/00/vWvf+HKlStIT083SecAIITAc889hwMHDiAmJgbt27dHWloaJk+ejMuXL2Px4sVS31GjRmHLli0YOXIkunbtioyMDISFhd2zrqFDh6Jly5Z45513pDCUnp6OX375BdHR0dBoNMjJycHq1auRk5ODI0eOVPoDP2zYMAQEBGD+/PlISUnB3Llz4ebmho8++gh9+vTBggULsGHDBkyaNAmdO3dGjx497vtYjRkzBuvWrcOQIUMwceJEHD16FElJSfjhhx+wfft2AMBnn32G1atX49ixY1izZg0A4Mknn7zvuFeuXMGBAwekN+/hw4dj8eLF+PDDD02OXHz//ffo3r077O3tMXbsWPj6+uLnn3/Gzp07MW/ePAwePBg//vgj/vOf/2Dx4sVo2LAhAKBRo0aV9tmpUyc0a9YMW7Zskd7Ay23evBkNGjRAaGgoAOD48eM4fPgwIiIi0KRJE1y4cAErV65Er169cObMGdSrVw89evTAa6+9hmXLluGNN95AQEAAAEj/rej27dvo1asXfvrpJ4wfPx5+fn7YunUrRo0ahcLCQrz++usm/Tdu3IgbN27gX//6FxQKBRYuXIjBgwfjl19+gb29PQAgPDwcOTk5mDBhAnx9fVFQUID09HTk5eXd8w/49OnT0apVK6xevRqzZ8+Gn58fmjdvDuCvUBYdHY3OnTsjKSkJ+fn5WLp0Kb755ht8++23JkdsSktLERoaim7duuHdd99FvXr1qtxfdYwcORJvvPEG9uzZg1deeeWe/WbNmoWZM2fiySefxOzZs+Hg4ICjR49i//796NevH5YsWYIJEybA2dlZCrkV36TuZs58y8rKEBoaiuDgYLz77rvYu3cv3nvvPTRv3hyvvvqq1G/p0qV47rnnEBkZieLiYmzatAlDhw7Frl27Kv3+79+/H1u2bMH48ePRsGFD+Pn5YcSIEVi4cCGuXbsGNzc3qe/OnTthMBiqdWSlpKSkyr+P9evXv++b87x58/DWW2/hxRdfxJgxY3D16lV88MEH6NGjR6XH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5eVlyXpqLDExEXq9XlouXbpk7ZKIiIioltjVZKOLFy9i7969+OKLL6Q2jUaD4uJiFBYWmhyFyc/Ph0ajkfocO3bMZKzyq5Tu7lPxyqX8/HyoVCo4OTndsyalUgmlUlmT6RAREZHM1OgIzNq1a+Hh4YGwsP+dcBoUFAR7e3vs27dPasvNzUVeXh60Wi0AQKvV4tSpUygoKJD6pKenQ6VSITAwUOpz9xjlfcrHICIiIjI7wBiNRqxduxZRUVGws/vfARy1Wo2YmBgkJCTgwIEDyMrKQnR0NLRaLbp27QoA6NevHwIDAzFy5Eh89913SEtLw5tvvonY2Fjp6Mm4cePwyy+/YMqUKTh79ixWrFiBLVu2ID4+3kJTJiIiIrkz+yOkvXv3Ii8vD6NHj660bvHixbCxsUF4eDiKiooQGhqKFStWSOttbW2xa9cuvPrqq9Bqtahfvz6ioqIwe/ZsqY+fnx9SUlIQHx+PpUuXokmTJlizZg1CQ0NrOEUiIiKqax7qPjCPMt4HhoiISH5q/T4wRERERNbCAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESyY3aAuXz5MkaMGAF3d3c4OTmhbdu2OHHihLReCIEZM2agcePGcHJyQkhICM6dO2cyxrVr1xAZGQmVSgVXV1fExMTg5s2bJn2+//57dO/eHY6OjvD29sbChQtrOEUiIiKqa8wKMNevX8dTTz0Fe3t7pKam4syZM3jvvffQoEEDqc/ChQuxbNkyrFq1CkePHkX9+vURGhqKO3fuSH0iIyORk5OD9PR07Nq1C4cOHcLYsWOl9QaDAf369YOPjw+ysrKwaNEizJw5E6tXr7bAlImIiEjuFEIIUd3O06ZNwzfffIP/+7//q3K9EAJeXl6YOHEiJk2aBADQ6/Xw9PREcnIyIiIi8MMPPyAwMBDHjx9Hp06dAAC7d+/Gs88+i19//RVeXl5YuXIlpk+fDp1OBwcHB2nfO3bswNmzZ6tVq8FggFqthl6vh0qlqu4Uq8V3WopFx7vbhflhtTY2ERHRo666799mHYH56quv0KlTJwwdOhQeHh7o0KEDPv74Y2n9+fPnodPpEBISIrWp1WoEBwcjMzMTAJCZmQlXV1cpvABASEgIbGxscPToUalPjx49pPACAKGhocjNzcX169errK2oqAgGg8FkISIiorrJrADzyy+/YOXKlWjZsiXS0tLw6quv4rXXXsO6desAADqdDgDg6elpsp2np6e0TqfTwcPDw2S9nZ0d3NzcTPpUNcbd+6goKSkJarVaWry9vc2ZGhEREcmIWQHGaDSiY8eOeOedd9ChQweMHTsWr7zyClatWlVb9VVbYmIi9Hq9tFy6dMnaJREREVEtMSvANG7cGIGBgSZtAQEByMvLAwBoNBoAQH5+vkmf/Px8aZ1Go0FBQYHJ+tLSUly7ds2kT1Vj3L2PipRKJVQqlclCREREdZNZAeapp55Cbm6uSduPP/4IHx8fAICfnx80Gg327dsnrTcYDDh69Ci0Wi0AQKvVorCwEFlZWVKf/fv3w2g0Ijg4WOpz6NAhlJSUSH3S09PRqlUrkyueiIiI6J/JrAATHx+PI0eO4J133sFPP/2EjRs3YvXq1YiNjQUAKBQKxMXFYe7cufjqq69w6tQpvPzyy/Dy8sKgQYMA/HXE5plnnsErr7yCY8eO4ZtvvsH48eMREREBLy8vAMBLL70EBwcHxMTEICcnB5s3b8bSpUuRkJBg2dkTERGRLNmZ07lz587Yvn07EhMTMXv2bPj5+WHJkiWIjIyU+kyZMgW3bt3C2LFjUVhYiG7dumH37t1wdHSU+mzYsAHjx49H3759YWNjg/DwcCxbtkxar1arsWfPHsTGxiIoKAgNGzbEjBkzTO4VQ0RERP9cZt0HRk54HxgiIiL5qZX7wBARERE9ChhgiIiISHYYYIiIiEh2GGCIiIhIdhhgiIiISHYYYIiIiEh2GGCIiIhIdhhgiIiISHYYYIiIiEh2GGCIiIhIdhhgiIiISHYYYIiIiEh2GGCIiIhIdhhgiIiISHYYYIiIiEh2GGCIiIhIdhhgiIiISHYYYIiIiEh2GGCIiIhIdhhgiIiISHYYYIiIiEh2GGCIiIhIdhhgiIiISHYYYIiIiEh2GGCIiIhIdhhgiIiISHYYYIiIiEh2GGCIiIhIdhhgiIiISHYYYIiIiEh2GGCIiIhIdhhgiIiISHYYYIiIiEh2GGCIiIhIdswKMDNnzoRCoTBZ/P39pfV37txBbGws3N3d4ezsjPDwcOTn55uMkZeXh7CwMNSrVw8eHh6YPHkySktLTfocPHgQHTt2hFKpRIsWLZCcnFzzGRIREVGdY/YRmNatW+O3336Tlq+//lpaFx8fj507d2Lr1q3IyMjAlStXMHjwYGl9WVkZwsLCUFxcjMOHD2PdunVITk7GjBkzpD7nz59HWFgYevfujezsbMTFxWHMmDFIS0t7yKkSERFRXWFn9gZ2dtBoNJXa9Xo9PvnkE2zcuBF9+vQBAKxduxYBAQE4cuQIunbtij179uDMmTPYu3cvPD090b59e8yZMwdTp07FzJkz4eDggFWrVsHPzw/vvfceACAgIABff/01Fi9ejNDQ0IecLhEREdUFZh+BOXfuHLy8vNCsWTNERkYiLy8PAJCVlYWSkhKEhIRIff39/dG0aVNkZmYCADIzM9G2bVt4enpKfUJDQ2EwGJCTkyP1uXuM8j7lY9xLUVERDAaDyUJERER1k1kBJjg4GMnJydi9ezdWrlyJ8+fPo3v37rhx4wZ0Oh0cHBzg6upqso2npyd0Oh0AQKfTmYSX8vXl6+7Xx2Aw4Pbt2/esLSkpCWq1Wlq8vb3NmRoRERHJiFkfIfXv31/6/yeeeALBwcHw8fHBli1b4OTkZPHizJGYmIiEhATpZ4PBwBBDRERURz3UZdSurq54/PHH8dNPP0Gj0aC4uBiFhYUmffLz86VzZjQaTaWrksp/flAflUp135CkVCqhUqlMFiIiIqqbHirA3Lx5Ez///DMaN26MoKAg2NvbY9++fdL63Nxc5OXlQavVAgC0Wi1OnTqFgoICqU96ejpUKhUCAwOlPnePUd6nfAwiIiIiswLMpEmTkJGRgQsXLuDw4cN44YUXYGtri+HDh0OtViMmJgYJCQk4cOAAsrKyEB0dDa1Wi65duwIA+vXrh8DAQIwcORLfffcd0tLS8OabbyI2NhZKpRIAMG7cOPzyyy+YMmUKzp49ixUrVmDLli2Ij4+3/OyJiIhIlsw6B+bXX3/F8OHD8ccff6BRo0bo1q0bjhw5gkaNGgEAFi9eDBsbG4SHh6OoqAihoaFYsWKFtL2trS127dqFV199FVqtFvXr10dUVBRmz54t9fHz80NKSgri4+OxdOlSNGnSBGvWrOEl1ERERCRRCCGEtYuoDQaDAWq1Gnq93uLnw/hOS7HoeHe7MD+s1sYmIiJ61FX3/ZvfhURERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLLDAENERESywwBDREREssMAQ0RERLJjZ+0CyJTvtJRaGffC/LBaGZeIiMgaeASGiIiIZIcBhoiIiGSHAYaIiIhkhwGGiIiIZOehAsz8+fOhUCgQFxcntd25cwexsbFwd3eHs7MzwsPDkZ+fb7JdXl4ewsLCUK9ePXh4eGDy5MkoLS016XPw4EF07NgRSqUSLVq0QHJy8sOUSkRERHVIjQPM8ePH8dFHH+GJJ54waY+Pj8fOnTuxdetWZGRk4MqVKxg8eLC0vqysDGFhYSguLsbhw4exbt06JCcnY8aMGVKf8+fPIywsDL1790Z2djbi4uIwZswYpKWl1bRcIiIiqkNqFGBu3ryJyMhIfPzxx2jQoIHUrtfr8cknn+D9999Hnz59EBQUhLVr1+Lw4cM4cuQIAGDPnj04c+YM1q9fj/bt26N///6YM2cOli9fjuLiYgDAqlWr4Ofnh/feew8BAQEYP348hgwZgsWLF1tgykRERCR3NQowsbGxCAsLQ0hIiEl7VlYWSkpKTNr9/f3RtGlTZGZmAgAyMzPRtm1beHp6Sn1CQ0NhMBiQk5Mj9ak4dmhoqDRGVYqKimAwGEwWIiIiqpvMvpHdpk2bcPLkSRw/frzSOp1OBwcHB7i6upq0e3p6QqfTSX3uDi/l68vX3a+PwWDA7du34eTkVGnfSUlJmDVrlrnTISIiIhky6wjMpUuX8Prrr2PDhg1wdHSsrZpqJDExEXq9XlouXbpk7ZKIiIiolpgVYLKyslBQUICOHTvCzs4OdnZ2yMjIwLJly2BnZwdP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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGzCAYAAAAxPS2EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABEj0lEQVR4nO3dfXzP9eL/8ednY58NuzCzzWpmLsJc52KtMsQxLI6TchmS0sXoMDmSaC4y0YUuHB3fb+hbnOgUnYjMRZyyEGcJWRTJYVNhH5TZxev3R7+9j48NmzbzXo/77fa+8Xm9X+/X+/V+f66en9f7Yg5jjBEAAICNeJR3BwAAAEqKAAMAAGyHAAMAAGyHAAMAAGyHAAMAAGyHAAMAAGyHAAMAAGyHAAMAAGyHAAMAAGyHAGNTderU0X333Vfe3ajwZs+erbp168rT01MtW7Ys7+5IKt/nvmPHjurYsWO5rLs41qxZo5YtW8rb21sOh0OnTp0q7y65SUpKksPhKLX2Pv74YzkcDn388cel1qadlfb+xfWNAHMdWLRokRwOhz7//PMi53fs2FFNmzb9zev58MMPlZSU9Jvb+b1Yu3at/vKXv+i2227TwoULNWPGjGIt17dvXzkcDo0fP/6q171lyxYlJSWVyxfw3r17lZSUpEOHDl3zdf8WP/30k/r27SsfHx/NnTtXb775pqpWrVpm6yt43xZM3t7eCgsLU1xcnF5++WWdPn261Nb117/+VYsWLSq19uymTp06bvv6wqlbt27l3b0ys2TJEs2ZM6fY9XNycjRlyhTVrVtXTqdTdevW1fTp05Wbm1t2nSxPBuVu4cKFRpLZvn17kfM7dOhgmjRp4lZ27tw5c/78+RKtJyEhwfCUF9/48eONh4eHyc7OLvYyWVlZxtvb29SpU8eEh4eb/Pz8q1r37NmzjSRz8ODBQvOu5rkviXfeecdIMhs3biw0Lzs7u0T741pavXq1kWRSUlKuyfoK3rdTp041b775plmwYIGZMWOG6dq1q3E4HCYiIsJ88cUXbsvk5OSYX375pcTratKkienQoUOh8ry8PPPLL7+YvLy8q90MW4iIiDAtW7Y0b775ZqFp/fr1Vr2nn366Qn3GxcfHm4iIiGLX79u3r3E4HGb48OFm3rx5ZujQoUaSefDBB8uuk+WoUvlFJ/wWTqezvLtQYmfPni3TX8Sl7fjx4/Lx8ZGXl1exl3n33XeVl5enBQsW6I477tDmzZvVoUOHUu1XeT73JdkX19rx48clSQEBAaXWZnFes927d1ebNm2sxxMmTNCGDRt05513qlevXvrqq6/k4+MjSapUqZIqVSq9j10PDw95e3uXWnulLT8/X+fPny+VPt5www269957S6FXFdP27du1bNkyTZo0SVOnTpUkPfzwwwoKCtILL7ygkSNHqnnz5uXcy1JW3gkKVzcCExERYYYOHWo9Pn/+vElKSjL169c3TqfTBAYGmttuu82sXbvWGGOsJH7xVODMmTMmMTHR3HjjjcbLy8vcdNNNZvbs2YVGEH7++WczatQoU6NGDVOtWjXTs2dPc+TIESPJPP3001a9gl9Ce/bsMQMGDDABAQGmZcuWxhhjvvjiCzN06FATGRlpnE6nCQkJMcOGDTM//vij27oK2khPTzeDBg0yfn5+JigoyDz11FMmPz/fHD582PTq1cv4+vqakJAQ89xzzxVrf+fk5JipU6eaunXrGi8vLxMREWEmTJhgzp07Z9Upal8tXLjwim137tzZ9OjRwxhjTOPGjS/5y+err74y99xzjwkKCjLe3t7mpptuMk8++aTbdl88FYzGXPjcb9++3UgyixYtKrSONWvWGEnmgw8+MMYYc+jQIfPII4+Ym266yXh7e5vAwEBz9913u43yFLwWL54KRmM6dOhQaCQgMzPT3H///SY4ONg4nU7TvHnzQv05ePCgkWRmz55t/va3v1n7vk2bNmbbtm1udY8dO2buu+8+c8MNNxgvLy8TGhpqevXqVeRoVIEOHToU6vOF749ly5aZm2++2Xh7e5saNWqYQYMGmSNHjri1MXToUFO1alVz4MAB0717d1OtWjXzxz/+8ZLrvNL7dsaMGUaSmT9/vlV2qRGCN99807Rt29b4+PiYgIAA0759e/PRRx8ZY359vi/etoLnYOPGjUWOlpVke48cOWL++Mc/mqpVq5qgoCAzduxYk5ub61Z39uzZJiYmxgQGBhpvb29z8803m3feeafQdkgyCQkJ5q233jJRUVGmUqVK5r333jMRERGmV69eher/8ssvxs/Pz4wYMaLIfVggIiLCxMfHX7aOMZffvwX7o3r16qZfv37m8OHDbnUKPme/+OILExsba3x8fEy9evWs7fz4449Nu3btrPdrUSN9R44cMcOGDTPBwcHGy8vLREVFmddff92tTsFztnTpUjN9+nRzww03GKfTae644w6zf/9+t/5c/LxfbjTm+eeftz5zL1TwGVHw+VKRMAJzHcnKytKPP/5YqDwnJ+eKyyYlJSk5OVkPPPCA2rVrJ5fLpc8//1w7d+7UH/7wBz300EM6evSoUlJS9Oabb7ota4xRr169tHHjRg0fPlwtW7bURx99pHHjxuk///mPXnzxRavufffdp2XLlmnw4MG65ZZbtGnTJsXHx1+yX/fcc48aNGigGTNmyBgjSUpJSdG3336rYcOGKTQ0VHv27NH8+fO1Z88effbZZ4VOwuvXr58aN26smTNnatWqVZo+fboCAwP1t7/9TXfccYeeffZZLV68WI8//rjatm2r2NjYy+6rBx54QG+88YbuvvtujR07Vlu3blVycrK++uorLV++XJL05ptvav78+dq2bZv+93//V5J06623Xrbdo0ePauPGjXrjjTckSQMGDNCLL76oV1991W3kYteuXWrfvr0qV66sESNGqE6dOvrmm2/0wQcf6JlnntFdd92lr7/+Wn//+9/14osvKigoSJJUs2bNQuts06aN6tatq2XLlmno0KFu85YuXarq1asrLi5O0q+/0LZs2aL+/fvrxhtv1KFDhzRv3jx17NhRe/fuVZUqVRQbG6vHHntML7/8sp588kk1btxYkqx/L/bLL7+oY8eOOnDggEaOHKnIyEi98847uu+++3Tq1Cn9+c9/dqu/ZMkSnT59Wg899JAcDodmzZqlu+66S99++60qV64sSerTp4/27NmjUaNGqU6dOjp+/LhSUlJ0+PBh1alTp8h+TJw4UQ0bNtT8+fM1depURUZGql69epJ+PVdl2LBhatu2rZKTk5WZmamXXnpJn376qf7973+7jdjk5uYqLi5Ot99+u5577jlVqVKlyPUVx+DBg/Xkk09q7dq1evDBBy9Zb8qUKUpKStKtt96qqVOnysvLS1u3btWGDRvUtWtXzZkzR6NGjVK1atU0ceJESVJISMgl2yvJ9ubl5SkuLk7R0dF67rnntG7dOj3//POqV6+eHnnkEaveSy+9pF69emnQoEE6f/683n77bd1zzz1auXJloff/hg0btGzZMo0cOVJBQUGKjIzUvffeq1mzZunEiRMKDAy06n7wwQdyuVzFGlnJyckp8vOxatWq1ghXUZ555hlNmjRJffv21QMPPKAffvhBr7zyimJjYwvtj5MnT+rOO+9U//79dc8992jevHnq37+/Fi9erNGjR+vhhx/WwIEDNXv2bN199936/vvv5evrK0nKzMzULbfcIofDoZEjR6pmzZpavXq1hg8fLpfLpdGjR7v1a+bMmfLw8NDjjz+urKwszZo1S4MGDdLWrVsl/fqazsrK0pEjR6zP4GrVql1yO7OzsyWp0L4oeA3v2LHjksvaVnknKFz6V++F05VGYFq0aHHFXyiXOgdmxYoVRpKZPn26W/ndd99tHA6HOXDggDHGmB07dhhJZvTo0W717rvvvkuOwAwYMKDQ+n7++edCZX//+9+NJLN58+ZCbVz46yw3N9fceOONxuFwmJkzZ1rlJ0+eND4+Pm77pChpaWlGknnggQfcyh9//HEjyWzYsMEqK/iFWlzPPfec8fHxMS6XyxhjzNdff20kmeXLl7vVi42NNb6+vua7775zK79wtOty58Bc/NxPmDDBVK5c2Zw4ccIqy87ONgEBAeb++++3yora76mpqUaS+b//+z+r7HLnwFw8AjNnzhwjybz11ltW2fnz501MTIypVq2atS8KRmBq1Kjh1s/333/fbZTo5MmT1khNSRU1InL+/HkTHBxsmjZt6nbuycqVK40kM3nyZKusYJTyiSeeuOr1Xczf39+0atXKenzxCMH+/fuNh4eH+dOf/lToPJYLXw+XOgfm4hGYq9neqVOnurXZqlUr07p1a7eyi18758+fN02bNjV33HGHW7kk4+HhUWgUID093Ugy8+bNcyvv1auXqVOnzhXPFStqFKpgSk5OtupdvH8PHTpkPD09zTPPPOPW3pdffmkqVarkVl4w4rFkyRKrbN++fdY2ffbZZ1b5Rx99VGhUdvjw4aZWrVqFRpL79+9v/P39rX1Y8Jw1btzY7Xyyl156yUgyX375pVVWknNg3n33XSPJvPnmm27lr732mpFkmjZtWqx27ISrkK4jc+fOVUpKSqGpOMctAwICtGfPHu3fv7/E6/3www/l6empxx57zK187NixMsZo9erVkn69RFWSHn30Ubd6o0aNumTbDz/8cKGyC38hnDt3Tj/++KNuueUWSdLOnTsL1X/ggQes/3t6eqpNmzYyxmj48OFWeUBAgBo2bKhvv/32kn2Rft1WSUpMTHQrHzt2rCRp1apVl13+chYvXqz4+HjrF1mDBg3UunVrLV682Krzww8/aPPmzbr//vtVu3Ztt+Wv9vLPfv36KScnR++9955VtnbtWp06dUr9+vWzyi7c7zk5Ofrpp59Uv359BQQEFLnfi+PDDz9UaGioBgwYYJVVrlxZjz32mM6cOaNNmzYV6mv16tWtx+3bt5ck63krOOfo448/1smTJ6+qTxf6/PPPdfz4cT366KNu52HEx8erUaNGRT7fF448/FbVqlW77NVIK1asUH5+viZPniwPD/eP46t5PVzN9l78Hm3fvn2h99GFr52TJ08qKytL7du3L/J106FDB0VFRbmV3XTTTYqOjnZ7L5w4cUKrV6/WoEGDirWt0dHRRX4+Xvjau9h7772n/Px89e3bVz/++KM1hYaGqkGDBtq4caNb/WrVqql///7W44YNGyogIECNGzdWdHS0W1+k/75ujTF699131bNnTxlj3NYVFxenrKysQvtq2LBhbiOzF78XSqpHjx6KiIjQ448/rvfee0/fffedli1bpokTJ6pSpUr65Zdfrqrd6xmHkK4j7dq1czsZsED16tWLHDq90NSpU/XHP/5RN910k5o2bapu3bpp8ODBxQo/3333ncLCwqwv3gIFhw2+++47618PDw9FRka61atfv/4l2764rvTrB9eUKVP09ttvWydeFsjKyipU/+Iven9/f3l7e1uHVi4s/+mnny7Zlwu34eI+h4aGKiAgwNrWkvrqq6/073//W0OGDNGBAwes8o4dO2ru3LlyuVzy8/OzPpxK47L4Ai1atFCjRo20dOlSK9QtXbpUQUFBuuOOO6x6v/zyi5KTk7Vw4UL95z//sQ7pSUXv9+L47rvv1KBBg0Jfvhe/dgpc/FwWhJmCsOJ0OvXss89q7NixCgkJ0S233KI777xTQ4YMUWho6FX1T/r1i+hijRo10ieffOJWVqlSJd14440lXs+lnDlzRsHBwZec/80338jDw6PQF/7VKun2ent7Fzo0Wb169ULhceXKlZo+fbrS0tKsQxVS0SGrqPe8JA0ZMkQjR47Ud999p4iICL3zzjvKycnR4MGDi7VtQUFB6tKlS7HqFti/f7+MMWrQoEGR8wsOWxa48cYbC22Tv7+/wsPDC5VJ/33d/vDDDzp16pTmz5+v+fPnF7muiz/rrvReKClvb2+tWrVKffv2VZ8+fST9+n6aNWuW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eXelQvrPf/6je++9VzVq1JCPj4+aNWumzz//vLy7VSHl5eVp0qRJioyMlI+Pj+rVq6dp06Zd8Q8E4so2b96snj17KiwsTA6HQytWrHCbb4zR5MmTVatWLfn4+KhLly7av39/qfeDAFNMS5cuVWJiop5++mnt3LlTLVq0UFxcnI4fP17eXatwNm3apISEBH322WdKSUlRTk6OunbtqrNnz5Z31yq07du3629/+5uaN29e3l2pkE6ePKnbbrtNlStX1urVq7V37149//zzql69enl3rUJ69tlnNW/ePL366qv66quv9Oyzz2rWrFl65ZVXyrtrtnf27Fm1aNFCc+fOLXL+rFmz9PLLL+u1117T1q1bVbVqVcXFxencuXOl2xGDYmnXrp1JSEiwHufl5ZmwsDCTnJxcjr36fTh+/LiRZDZt2lTeXamwTp8+bRo0aGBSUlJMhw4dzJ///Ofy7lKFM378eHP77beXdzd+N+Lj483999/vVnbXXXeZQYMGlVOPKiZJZvny5dbj/Px8ExoaambPnm2VnTp1yjidTvP3v/+9VNfNCEwxnD9/Xjt27FCXLl2sMg8PD3Xp0kWpqanl2LPfh6ysLElSYGBgOfek4kpISFB8fLzbaxyl65///KfatGmje+65R8HBwWrVqpX+53/+p7y7VWHdeuutWr9+vb7++mtJ0hdffKFPPvlE3bt3L+eeVWwHDx5URkaG22eJv7+/oqOjS/378rr9UwLXkx9//FF5eXmF/oxBSEiI9u3bV069+n3Iz8/X6NGjddttt6lp06bl3Z0K6e2339bOnTu1ffv28u5Khfbtt99q3rx5SkxM1JNPPqnt27frsccek5eXl4YOHVre3atwnnjiCblcLjVq1Eienp7Ky8vTM888o0GDBpV31yq0jIwMSSry+7JgXmkhwOC6lpCQoN27d+uTTz4p765USN9//73+/Oc/KyUlRd7e3uXdnQotPz9fbdq00YwZMyRJrVq10u7du/Xaa68RYMrAsmXLtHjxYi1ZskRNmjRRWlqaRo8erbCwMPZ3BcEhpGIICgqSp6enMjMz3cozMzMVGhpaTr2q+EaOHKmVK1dq48aNuvHGG8u7OxXSjh07dPz4cd18882qVKmSKlWqpE2bNunll19WpUqVlJeXV95drDBq1aqlqKgot7LGjRvr8OHD5dSjim3cuHF64okn1L9/fzVr1kyDBw/WmDFjlJycXN5dq9AKvhOvxfclAaYYvLy81Lp1a61fv94qy8/P1/r16xUTE1OOPauYjDEaOXKkli9frg0bNigyMrK8u1Rhde7cWV9++aXS0tKsqU2bNho0aJDS0tLk6elZ3l2sMG677bZCtwP4+uuvFRERUU49qth+/vlneXi4f8V5enoqPz+/nHr0+xAZGanQ0FC370uXy6WtW7eW+vclh5CKKTExUUOHDlWbNm3Url07zZkzR2fPntWwYcPKu2sVTkJCgpYsWaL3339fvr6+1nFTf39/+fj4lHPvKhZfX99C5xZVrVpVNWrU4JyjUjZmzBjdeuutmjFjhvr27att27Zp/vz5mj9/fnl3rULq2bOnnnnmGdWuXVtNmjTRv//9b73wwgu6//77y7trtnfmzBkdOHDAenzw4EGlpaUpMDBQtWvX1ujRozV9+nQ1aNBAkZGRmjRpksLCwtS7d+/S7UipXtNUwb3yyiumdu3axsvLy7Rr18589tln5d2lCklSkdPChQvLu2u/C1xGXXY++OAD07RpU+N0Ok2jRo3M/Pnzy7tLFZbL5TJ//vOfTe3atY23t7epW7eumThxosnOzi7vrtnexo0bi/yMHjp0qDHm10upJ02aZEJCQozT6TSdO3c26enppd4PhzHclhAAANgL58AAAADbIcAAAADbIcAAAADbIcAAAADbIcAAAADbIcAAAADbIcAAAADbIcAAAADbIcAAAADbIcAAAADbIcAAAADb+X/kxxfoMfsizgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Plot a histogram\n",
    "import matplotlib.pyplot as plt\n",
    "for x in range(10):\n",
    "    max_elements = (dictionary_activations[:, max_indices[x]]>0.01)\n",
    "    plt.hist(dictionary_activations[max_elements, max_indices[x]], bins=20)\n",
    "    plt.title('Histogram of Activations for Dictionary Element ' + str(x))\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "vscode": {
     "languageId": "shellscript"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "23153\n",
      "11\n",
      "170\n",
      "2500\n",
      "433\n",
      "315\n",
      "2917\n",
      "511\n",
      "22561\n",
      "3170\n"
     ]
    }
   ],
   "source": [
    "#Plot a histogram\n",
    "import matplotlib.pyplot as plt\n",
    "for x in range(10):\n",
    "    print((dictionary_activations[:, max_indices[x]] > 0.0).sum().item())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "vscode": {
     "languageId": "shellscript"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([580380])"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dictionary_activations[:, max_indices[x]].shape"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.11"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
